[Welcome to Sensei's Library!]

StartingPoints
ReferenceSection
About


Referenced by
KGSWishlistTechnical
KGSForumAtSLDiscu...

 

KGS Client Memory Consumption Page
    Keywords: Online Go

Dieter: This page has a wrong title, is not about Go and instead contains a dump of memory useage. Request for deletion?.

Hu: I disagree. This page is designed to assist the efficacy of using a popular Go server to play Go. The large process table is not very useful and should be summarized or deleted. The page has been retitled to correct the spelling error. Perhaps this page should be wiped in 2005 or sooner since CGoban2 is evolving all the time and the memory consumption here may no longer be accurate, or as much of a problem, by then.


If this page is useful, then correct the spelling of the title, please.

jab: (after a discussion on KGS Wishlist Technical )

At 1) I clicked on 4 SGF in mozilla, four independent instances of Cgoban opened, each taking away quite some memory.

At 2) I opened one Cgoban main window and clicked 4 times the "Edit SGF File" button to also end up with four goban's. This time they shared the main instance of Cgoban, thus taking away much less memory.

From the numbers below I say case 1) takes away more memory than case 2) - and case 1) will be used in all instances where mime/link (click and go) is used. mgoetze Do you agree ?

mgoetze: No, ps tells you how much memory each process is accessing, but not how much of that is shared with other processes. In one case you are counting a certain memory region once, and in the other case you are counting that same memory region four times.

jab: That might be right and I am not speaking about the absolut numbers cgoban compared to acroread. Let us take a /usr/local/bin/cgoban line in the ps output, which represents one time cgoban run by a jvm with all its shared libraries. In case 1) we have this line four times in 2) just once (just as a note in both cases 4 sgf editors were open). For the shared libraries your remark is true, but for the jvms not. Also I believe that most of the java api is implemented not by shared libraries, which would render the sandbox idea void. Anyway maybe I should not try to give numbers myself, but ask directly for a proof against my claim. My claim is that memory wise on a xterm:

cgoban f1.sgf ; cgoban f2.sgf ; cgoban f3.sgf ≫ cgoban f1.sgf f2.sgf f3.sgf

while

acroread file1.pdf ; acroread file2.pdf; acroread file3.pdf ≈ acroread file1.pdf file2.pdf file3.pdf

Anybody points against or for this claim ?

mgoetze: I am not at all interested in the implementation of Java, but I'll stick to what I've said from the start - there's nothing that can be changed in CGoban to satisfy your "wish", wish is therefore quite pointless.

Cheyenne: First try doing java -jar cgoban.jar f1.sgf; ... _ This eliminates the shell script surrounding the java invocation. Next you should try doing the same test with another java application (just find a "hello world" type of application). I suspect again that the results you are seeing are with the java runtime environment and not with cgoban application itself.

Rakshasa: "size" and "tsiz" are more intereststing than pmem.

Cheyenne: Take a close look at how mozilla is invoking cgoban. It is invoking it indirectly via the shell. You are not dealing with a browser plug in, but an external invocation of an app. The reason why you see acrobat with only one instance is that acrobat provides a browser plugin interface.

If you are really concerned about how much memory per instance cgoban is using, just launch cgoban directly and edit the sgf files via the cgoban menu.

jab: Cheyenne, I agree to launch it directly and edit via sgf menu - that is what I do at the moment. And I am not saying my request is urgent, just that it would be a nice feature to add.

I will also see if the plugin invocation helps. I just want to state that I didn't compare it to acrobat invoceed by mozilla (help>plugins>shows I have none installed), but by doing "acrobat x.pdf; acrobat y.pdf; acrobat z.pdf" on a shell. So it should be comparable to indirect invocation via shell of mozilla.


Below the exact numbers (to the top comment):

1)

ps -Heo pid,ppid,user,pmem,cmd

 PID  PPID USER     %MEM CMD
    1     0 root      0.0 init
 2108     1 jab       0.0   kdeinit: Running...
 2174  2108 jab       0.0     /bin/sh /usr/local/mozilla/run-mozilla.sh /usr/local/mozilla/mozilla-bin
 2180  2174 jab      14.8       /usr/local/mozilla/mozilla-bin
 2181  2180 jab      14.8         /usr/local/mozilla/mozilla-bin
 9347  2181 jab      14.8           /usr/local/mozilla/mozilla-bin
 9348  9347 jab       0.0             /bin/sh /usr/local/bin/cgoban /tmp/mirkof-jab-20030701.sgf
 9349  9348 jab       9.0               java -jar /usr/local/src/cgoban/cgoban.jar /tmp/mirkof-jab-20030701.sgf
 9350  9349 jab       9.0                 java -jar /usr/local/src/cgoban/cgoban.jar /tmp/mirkof-jab-20030701.sgf
 9351  9350 jab       9.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/mirkof-jab-20030701.sgf
 9352  9350 jab       9.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/mirkof-jab-20030701.sgf
 9353  9350 jab       9.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/mirkof-jab-20030701.sgf
 9354  9350 jab       9.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/mirkof-jab-20030701.sgf
 9355  9350 jab       9.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/mirkof-jab-20030701.sgf
 9356  9350 jab       9.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/mirkof-jab-20030701.sgf
 9357  9350 jab       9.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/mirkof-jab-20030701.sgf
 9368  9350 jab       9.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/mirkof-jab-20030701.sgf
 9381  9350 jab       9.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/mirkof-jab-20030701.sgf
 9387  9350 jab       9.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/mirkof-jab-20030701.sgf
 9392  9350 jab       9.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/mirkof-jab-20030701.sgf
 9394  9350 jab       9.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/mirkof-jab-20030701.sgf
 9397  9350 jab       9.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/mirkof-jab-20030701.sgf
 9358  9347 jab       0.0             /bin/sh /usr/local/bin/cgoban /tmp/wfholden-jab-20030726.sgf
 9359  9358 jab       8.5               java -jar /usr/local/src/cgoban/cgoban.jar /tmp/wfholden-jab-20030726.sgf
 9360  9359 jab       8.5                 java -jar /usr/local/src/cgoban/cgoban.jar /tmp/wfholden-jab-20030726.sgf
 9361  9360 jab       8.5                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/wfholden-jab-20030726.sgf
 9362  9360 jab       8.5                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/wfholden-jab-20030726.sgf
 9363  9360 jab       8.5                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/wfholden-jab-20030726.sgf
 9364  9360 jab       8.5                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/wfholden-jab-20030726.sgf
 9365  9360 jab       8.5                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/wfholden-jab-20030726.sgf
 9366  9360 jab       8.5                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/wfholden-jab-20030726.sgf
 9367  9360 jab       8.5                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/wfholden-jab-20030726.sgf
 9372  9360 jab       8.5                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/wfholden-jab-20030726.sgf
 9384  9360 jab       8.5                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/wfholden-jab-20030726.sgf
 9388  9360 jab       8.5                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/wfholden-jab-20030726.sgf
 9391  9360 jab       8.5                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/wfholden-jab-20030726.sgf
 9393  9360 jab       8.5                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/wfholden-jab-20030726.sgf
 9398  9360 jab       8.5                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/wfholden-jab-20030726.sgf
 9369  9347 jab       0.0             /bin/sh /usr/local/bin/cgoban /tmp/ynohoo-jab-20030802.sgf
 9370  9369 jab       9.6               java -jar /usr/local/src/cgoban/cgoban.jar /tmp/ynohoo-jab-20030802.sgf
 9371  9370 jab       9.6                 java -jar /usr/local/src/cgoban/cgoban.jar /tmp/ynohoo-jab-20030802.sgf
 9373  9371 jab       9.6                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/ynohoo-jab-20030802.sgf
 9374  9371 jab       9.6                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/ynohoo-jab-20030802.sgf
 9375  9371 jab       9.6                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/ynohoo-jab-20030802.sgf
 9376  9371 jab       9.6                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/ynohoo-jab-20030802.sgf
 9377  9371 jab       9.6                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/ynohoo-jab-20030802.sgf
 9378  9371 jab       9.6                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/ynohoo-jab-20030802.sgf
 9379  9371 jab       9.6                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/ynohoo-jab-20030802.sgf
 9380  9371 jab       9.6                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/ynohoo-jab-20030802.sgf
 9383  9371 jab       9.6                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/ynohoo-jab-20030802.sgf
 9389  9371 jab       9.6                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/ynohoo-jab-20030802.sgf
 9390  9371 jab       9.6                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/ynohoo-jab-20030802.sgf
 9395  9371 jab       9.6                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/ynohoo-jab-20030802.sgf
 9396  9371 jab       9.6                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/ynohoo-jab-20030802.sgf
 9413  9347 jab       0.9             /bin/sh /usr/local/bin/cgoban /tmp/goaddict-jab-20040326.sgf
 9414  9413 jab      31.0               java -jar /usr/local/src/cgoban/cgoban.jar /tmp/goaddict-jab-20040326.sgf
 9415  9414 jab      31.0                 java -jar /usr/local/src/cgoban/cgoban.jar /tmp/goaddict-jab-20040326.sgf
 9416  9415 jab      31.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/goaddict-jab-20040326.sgf
 9417  9415 jab      31.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/goaddict-jab-20040326.sgf
 9418  9415 jab      31.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/goaddict-jab-20040326.sgf
 9419  9415 jab      31.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/goaddict-jab-20040326.sgf
 9420  9415 jab      31.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/goaddict-jab-20040326.sgf
 9421  9415 jab      31.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/goaddict-jab-20040326.sgf
 9422  9415 jab      31.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/goaddict-jab-20040326.sgf
 9423  9415 jab      31.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/goaddict-jab-20040326.sgf
 9424  9415 jab      31.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/goaddict-jab-20040326.sgf
 9425  9415 jab      31.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/goaddict-jab-20040326.sgf
 9426  9415 jab      31.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/goaddict-jab-20040326.sgf
 9427  9415 jab      31.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/goaddict-jab-20040326.sgf
 9428  9415 jab      31.0                   java -jar /usr/local/src/cgoban/cgoban.jar /tmp/goaddict-jab-20040326.sgf
 2243  2180 jab       0.0         netstat? <defunct>

2)

ps -Heo pid,ppid,user,pmem,cmd

  PID  PPID USER     %MEM CMD
    1     0 root      0.0 init
 2152     1 jab       3.7   kdeinit: kdesktop
 2195  2152 jab       0.0     /bin/sh /usr/local/bin/cgoban
 2196  2195 jab       7.3       java -jar /usr/local/src/cgoban/cgoban.jar
 2197  2196 jab       7.3         java -jar /usr/local/src/cgoban/cgoban.jar
 2198  2197 jab       7.3           java -jar /usr/local/src/cgoban/cgoban.jar
 2199  2197 jab       7.3           java -jar /usr/local/src/cgoban/cgoban.jar
 2200  2197 jab       7.3           java -jar /usr/local/src/cgoban/cgoban.jar
 2201  2197 jab       7.3           java -jar /usr/local/src/cgoban/cgoban.jar
 2202  2197 jab       7.3           java -jar /usr/local/src/cgoban/cgoban.jar
 2203  2197 jab       7.3           java -jar /usr/local/src/cgoban/cgoban.jar
 2204  2197 jab       7.3           java -jar /usr/local/src/cgoban/cgoban.jar
 2205  2197 jab       7.3           java -jar /usr/local/src/cgoban/cgoban.jar
 2206  2197 jab       7.3           java -jar /usr/local/src/cgoban/cgoban.jar
 2207  2197 jab       7.3           java -jar /usr/local/src/cgoban/cgoban.jar
 2208  2197 jab       7.3           java -jar /usr/local/src/cgoban/cgoban.jar
 2210  2197 jab       7.3           java -jar /usr/local/src/cgoban/cgoban.jar
 2214  2197 jab       7.3           java -jar /usr/local/src/cgoban/cgoban.jar
 2626  2152 jab       0.4     /opt/kde3/bin/kdesktop_lock

Neil: Here are my figures on [ext] FreeBSD 4.9 with native-compiled (not using Linux compat, that is) jdk 1.4.1:

 USER  PID  %CPU  %MEM  VSZ    RSS    TT  STAT STARTED  TIME    COMMAND
 neil  536  6.5   10.2  222656 52988  p0  S    4:22PM   0:10.98 java -jar cgoban.jar

[Paths removed in command line from java and cgoban.jar for legibility]

This data was taken with the client logged in, having open a few rooms and one completed game. The client was just opened, so there is no time for a slow and long memory leak to account for those 200MB and 50MB figures.



This is a copy of the living page "KGS Client Memory Consumption Page" at Sensei's Library.
(OC) 2004 the Authors, published under the OpenContent License V1.0.