Performance

A simple performance study was carried out against the university example. The hardware was a laptop with an Intel P4, 3 GHz CPU and 1G RAM. Java was run with a value of 1G for both initial and max memory sizes.

The elements in the example are composed of these values, which may be simple (int or string), composite (building or name), or involve functions (add, concat):

  • buildings: pk=int, name=string
  • names: pk=int, first=string, last=string
  • rooms: pk=int, room_name=(add, counter, 2 ints), building=building
  • teachers: pk=int, name=name, location=room, office_hours=(concat, counter, 3 strings)
  • students: pk=int, name=name
  • classes: pk=int, name=(concat string, int), book=(concat string, int), room=room, teacher=teacher, students=N students,
  • class-students: classPk=int, student=student
  • semesters: pk=int, season=string, year=date, classes=N classes
  • semester-classes: semesterPk=int, class=class

Several configurations were run and timed to completion. Each configuration had a value for number of semesters, classes per semester, and students per class. These configurations are presented as (A/B/C) where A=semesters, B=classes, and C = students. It is noteworthy that there was a significant amount of paging in all cases.



  • 10/100/100: time = 45 seconds. This generated a total of 1000 classes and 100000 students. 205105 xml elements and 302065 csv rows were generated.


  • 10/100/1000: time = 3 minutes, 51 seconds. This generated a total of 1000 classes and 1000000 students. 78871572 xml elements and 45334442 csv rows were generated.


  • 10/1000/100: time = 4 minutes, 12 seconds. This configuration is roughly equivalent to the previous one


  • 10/1000/1000 1/10000/1000: These larger datasets were stopped after 10 minutes, before they completed. Generalizing the above results, they should have taken roughly 45 minutes.

While the university example represents a relatively simple model with 9 elements, it is perhaps large enough to make reasonable generalizations to larger models.