Excellent paper from Joep Vesseur on secure programming.
Just gathered library usage charts for firefox and thunderbird. The full charts look like:FirefoxThunderbirdNeither of which is particularly telling. The...
Just gathered library usage charts for firefox and thunderbird. The full charts look like:FirefoxThunderbirdNeither of which is particularly telling. The reduced charts look much better:FirefoxThunderbird
Just gathered library usage charts for firefox and thunderbird. The full charts look like:FirefoxThunderbirdNeither of which is particularly telling. The reduced charts look...
Chris Quenelle posted an interesting comment to my post which showed the dependencies for StarOffice. As you can see from the mass of lines below, adding more...
Chris Quenelle posted an interesting comment to my post which showed the dependencies for StarOffice. As you can see from the mass of lines below, adding more dependency information, using the latest version of ld_dot, into the StarOffice library map did not make the graphic any clearer!It turns out that the reduction operation that Chris was alluding to is implemented by tred (the "transitive reduction filter", what great technobabble!). This filtering reduces the graph down...
Chris Quenelle posted an interesting comment to my post which showed the dependencies for StarOffice. As you can see from the mass of lines below, adding more dependency information, using the latest...
The next consideration when using libraries is that each library will get mapped in on a new virtual page of memory; as shown in this pmap output:% pmap...
The next consideration when using libraries is that each library will get mapped in on a new virtual page of memory; as shown in this pmap output:% pmap 6050060500: a.out00010000 8K r-x-- /libraries/a.out00020000 8K rwx-- /libraries/a.outFEEC0000 24K rwx-- [ anon ]FEED0000 8K r-x-- /libraries/lib1_26.soFEEE0000 8K rwx-- /libraries/lib1_26.soFEEF0000 8K r-x-- /libraries/lib1_25.soFEF00000 8K rwx-- /libraries/lib1_25.soFEF10000 8K r-x-- /libraries/lib1_24.soFEF20000 8K...
The next consideration when using libraries is that each library will get mapped in on a new virtual page of memory; as shown in this pmap output:% pmap 6050060500: a.out00010000 8K...
Most applications spend the majority of their time running - rather than starting up. So it's useful to look at the costs of using libraries at runtime.The most...
Most applications spend the majority of their time running - rather than starting up. So it's useful to look at the costs of using libraries at runtime.The most apparent cost of using libraries is that calls to routines now go indirectly to the target routine through the procedure look up table (PLT). Unless the developer explicitly limits the scope of a function, it is exported from the library as a global function, which means that even calls within the library will go...
Most applications spend the majority of their time running - rather than starting up. So it's useful to look at the costs of using libraries at runtime.The most apparent cost of using libraries...
As can be seen from the previous graphs, even a simple application (like ssh) can pull in a fair number of libraries. Whenever a library is pulled in, the...
As can be seen from the previous graphs, even a simple application (like ssh) can pull in a fair number of libraries. Whenever a library is pulled in, the linker has to request memory, load the image from disk, and then link in all the routines. This effort takes time - it's basically a large chunk of the start up time of an application. If you profile the start up of an application, you'll probably not see much because much of this time is basically the OS/disk activity of...
As can be seen from the previous graphs, even a simple application (like ssh) can pull in a fair number of libraries. Whenever a library is pulled in, the linker has to request memory, load the image...
Just updated the ld_dot script to include filter libraries. Added a profile for ssh logging into a system, rather than just showing the help message (click the...
Just updated the ld_dot script to include filter libraries. Added a profile for ssh logging into a system, rather than just showing the help message (click the image for the full size version).
I was talking to Rod Evans about the diagnostic capabilities available in the runtime linker. These are available through the environment setting LD_DEBUG. The...
I was talking to Rod Evans about the diagnostic capabilities available in the runtime linker. These are available through the environment setting LD_DEBUG. The setting LD_DEBUG=files gives diagnostic information about which libraries were loaded by which other libraries. This is rather hard to interpret, and would look better as a graph. It's relatively easy to parse the output from LD_DEBUG into dot format. This script does the parsing. The full stesp to do this for the date...
I was talking to Rod Evans about the diagnostic capabilities available in the runtime linker. These are available through the environment setting LD_DEBUG. The setting LD_DEBUG=files gives diagnostic...
We've just pushed a new version of The Developer's Edge to safari. The original version didn't show any of the text from each section of the book unless you...
We've just pushed a new version of The Developer's Edge to safari. The original version didn't show any of the text from each section of the book unless you logged into the safari site. The new version shows the snippet from each section even if you're not a subscriber.I was pleased to see that the book is featured on the Sun Studio developer portal.I'm also scheduled to give a second life presentation during JavaOne at 9am PST on the 3rd June.
We've just pushed a new version of The Developer's Edge to safari. The original version didn't show any of the text from each section of the book unless you logged into the safari site. The new...