[sip-comm-dev] Comparison between History Implementations


#1

Hi all

I am attaching my report on comparison the existing XML based history
impl and the new database based impl.developed by me as a part of my
GSoC project.

Regards

Ajay

Performance Comparison of History Service Implementations.pdf (52.9 KB)

Issues regarding switching to the DB implementation.pdf (38.4 KB)


#2

Hi Ajay,

Wow! Thank you very much for the great report and the effort put into
it! It was such a pleasure to read it. And I mean charts!? Come on!

If you allow me, I'd like to ask you for a few more details though.

What were the rough characteristics of the machine(s) on which you
gathered the report data? CPU(s), memory, the likes. These should make
it easier for readers to build a raw anticipation of the results on
their machines.

How do you measure the execution times? In the
System.currentTimeMillis style? With a profiler?

How do you measure the memory? Are you looking at the heap with a
memory analyzer? I'm asking because I just don't understand what it
means for the XML implementation to take 3MB or the database approach
to take 7MB.

Garbage collection behavior is also related to execution time and
memory. Have you been able to compare the garbage collection
telemetries of the two implementations?

Does the startup time include both cold and hot runs? I suppose these
should be the same because the JVM process will mostly likely show
differences between the cold and hot runs and not your code but it
doesn't hurt to ask I hope. For what it's worth, I expect users to
mostly experience cold runs because I suppose they'll start SIP
Communicator once in a session and just leave it in the system tray.

The way you've mentioned it in the report, it sounds like the database
is starting during application startup. Is that necessary given that
history use isn't that much of a startup feature? I know the
metacontact list may also need the database but I was thinking that it
may be worth it to look into the delay of the database startup until
it is actually necessary.

Thank you,
Lubomir

···

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#3

Hi Lubomir

Hi Ajay,

Wow! Thank you very much for the great report and the effort put into
it! It was such a pleasure to read it. And I mean charts!? Come on!

It feels really nice when someone appreciated one's efforts.Thanks a lot.

If you allow me, I'd like to ask you for a few more details though.

What were the rough characteristics of the machine(s) on which you
gathered the report data? CPU(s), memory, the likes. These should make
it easier for readers to build a raw anticipation of the results on
their machines.

The configuration of the computer on which I gathered the data is as follows:

Processor : Intel(R) Core(TM)2 Duo CPU T5250 @ 1.50GHz

RAM : 2 GB

Operating System :Microsoft® Windows Vista™ Home Premium (32 bit)

JRE : 1.6 (Java 6)

How do you measure the execution times? In the
System.currentTimeMillis style? With a profiler?

How do you measure the memory? Are you looking at the heap with a
memory analyzer? I'm asking because I just don't understand what it
means for the XML implementation to take 3MB or the database approach
to take 7MB.

I have measured the execution times using System.currentTimeMillis()
and the memory usage as follows :
Runtime rt = Runtime.getRuntime(); // Get runtime
rt.totalMemory() - rt.freeMemory()) / (1024 * 1024) // Measure free memory

Garbage collection behavior is also related to execution time and
memory. Have you been able to compare the garbage collection
telemetries of the two implementations?

I have not compared the garbage collection behavior of the two
implementations as I didn't find the memory usage very high.Also,I
have reported measurements which were consistent with other and
ignored abnormal results which may be due to garbage collection etc.

Does the startup time include both cold and hot runs? I suppose these
should be the same because the JVM process will mostly likely show
differences between the cold and hot runs and not your code but it
doesn't hurt to ask I hope. For what it's worth, I expect users to
mostly experience cold runs because I suppose they'll start SIP
Communicator once in a session and just leave it in the system tray.

The way you've mentioned it in the report, it sounds like the database
is starting during application startup. Is that necessary given that
history use isn't that much of a startup feature? I know the
metacontact list may also need the database but I was thinking that it
may be worth it to look into the delay of the database startup until
it is actually necessary.

The startup time i have mentioned here is the time taken for HSQLDB to
start a new connection.This has been measured outside of SC.As to when
exactly the database service to be started,I think I am not the best
person to decide.

Thank you,
Lubomir

Thanks a lot for your comments.

Regards
Ajay

···

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net