[wp-hackers] Proposal for a function commenting convention
wordpress at santosj.name
Sun Oct 14 07:56:11 GMT 2007
You have to post your code.
In theory, it does make sense that comments will have a minor impact on
performance, however it shouldn't have that much impact. The characters
would still have to be parsed up to the point where a clear guess could
be figured. Up to the point where it can be gathered that the line is
whitespace it would have to devote some time to figuring out what to do
before it can skip it and move on.
Much to the same reason why shorter variable names would have better
performance than longer ones. I very much prefer longer variable names
and also very much prefer documentation over having none.
Travis Snoozy wrote:
> On Sat, 13 Oct 2007 22:48:07 -0700, "Robin Adrianse"
> <robin.adr at gmail.com> wrote:
>> I highly doubt it, but someone more knowledgeable about the PHP code
>> would know for sure.
>> On 10/13/07, Matt <speedboxer at gmail.com> wrote:
>>> Ya... but... would documenting all (or most) of the functions make
>>> a huge impact on load times on the files since they'll be loaded
>>> with useless (in the executing sense) comments?
> When in doubt, get some numbers. ;) I'm actually sort of surprised at
> the results I got.
> There does seem to be a distinct overhead involved with parsing
> comments. Specifically, I observed a 7.5% increase in the test load's
> average run time, and (assuming that the difference between the
> commented/non-commented times on the test load can be added to the
> non-commented average page generation time) a possible 12.2% increase
> in page generation time.
> My assumptions/setup are laid out as follows:
> * In wordpress 2.3, the string "function " comes up 2,425 times. A
> very conservative estimate would put every one of these instances as a
> function declaration that's part of the API.
> * Assuming each function takes an average of 1000 total comment
> characters to document (almost certainly a low number), that's 2,425,000
> characters of comments.
> * Comments were split into 1000-character blocks (multi-line) -- one
> giant multi-line comment took substantially longer to parse, but was
> inconsistent with the actual comment pattern that would be used.
> * All tests were performed on the same box, using
> PHP 5.2.4_p20070914-pl2-gentoo, and WordPress 2.3/MySQL 5.0.44/Apache
> 2.2.6 (where applicable).
> Here's the data I collected (using the "time" command):
> Running a file containing only the comments:
> real 0m0.153s real 0m0.148s real 0m0.143s
> user 0m0.083s user 0m0.083s user 0m0.080s
> sys 0m0.003s sys 0m0.003s sys 0m0.007s
> Average real: 0.148s
> Echoing zero to a million to /dev/null (with comments):
> real 0m1.575s real 0m1.586s real 0m1.578s
> user 0m1.373s user 0m1.337s user 0m1.340s
> sys 0m0.137s sys 0m0.180s sys 0m0.183s
> Average real: 1.580s
> Echoing zero to a million to /dev/null with no comments:
> real 0m1.467s real 0m1.464s real 0m1.465s
> user 0m1.253s user 0m1.327s user 0m1.323s
> sys 0m0.203s sys 0m0.127s sys 0m0.133s
> Average real: 1.465s
> Running an empty file (<?php?>):
> real 0m0.021s real 0m0.023s real 0m0.023s
> user 0m0.020s user 0m0.020s user 0m0.020s
> sys 0m0.000s sys 0m0.003s sys 0m0.003s
> Dumping the commented code file to /dev/null with cat:
> real 0m0.003s real 0m0.006s real 0m0.004s
> user 0m0.000s user 0m0.000s user 0m0.000s
> sys 0m0.003s sys 0m0.007s sys 0m0.003s
> For reference, these are the times it took to load the front page of my
> test blog (on the same machine as these other tests were performed):
> 1.076 seconds
> 0.810 seconds
> 0.948 seconds
> Average generation time: 0.945s
> And just for the curious...
> Running a file with one huge comment (~2.4 million chars):
> real 0m0.726s real 0m0.731s real 0m0.714s
> user 0m0.633s user 0m0.653s user 0m0.630s
> sys 0m0.017s sys 0m0.000s sys 0m0.023s
> 7-12% is a pretty big performance hit -- even a 4-5% improvement in
> script running time would still be worth considering optimization in
> many circumstances. Thus, it may be beneficial, if substantial
> commenting is added, to strip that commenting out in the distributed
> zipfile that's intended for deployment. Of course, we'll only know the
> actual impact once all those comments are there, but the ballpark
> figures would seem to indicate that it's worth keeping an eye on.
More information about the wp-hackers