Linking 64-bit applications take considerably more time than linking 32-bit applications. It was reported that some of the real world ISV {64-bit} applications are nearly 4 to 6 times slower in linking phase, compared to 32-bit linking. Remedy:64-bit link time performance can be improved a bit, by setting the environment variable LD_NOEXEC_64 to any non-zero value. If the link process doesn't need more than 4G virtual address limit of the 32-bit mode, LD_NOEXEC_64 env. variable suppresses the automatic execution of the 64-bit link-editor (ld)....
Friday, 30 December 2005
Wednesday, 21 December 2005
Solaris: Estimating process memory footprint
Posted on 21:34 by Unknown
On Solaris 9 and later versions, pmap tool can be used to do capacity planning. pmap prints information about the virtual address space of a process. In other words, pmap output represents snapshot of a running process.To calculate per user memory footprint from a process, the following simple formula can be used:Total private memory + (Total shared memory/#instances)------------------------------------------------------- (Total load)Where:#instances is the actual number of instances of the program/application concurrently running....
Sunday, 11 December 2005
Sun Studio: debugging a multi-threaded application w/ dbx
Posted on 18:34 by Unknown
Multi-threading lets different tasks to run concurrently in a single process, hence multi-threaded programs would run faster on machines with multiple processors and on CPUs with multiple cores. On an SMP (Symmetric Multi-Processing system, where multiple processors share a single memory system) system with no CMT (Chip Multi-Threading), software threads are executed on different processors; and on an SMP system with CMT, the threads are executed on cores, and logical processors in CMP (Chip Multi-Processing) processors. As revolutionary chip designs...
Sunday, 4 December 2005
Sun Studio C/C++: Improve performance with -xtarget, -xarch
Posted on 02:28 by Unknown
Even though many software vendors don't support SPARC v8 architecture (ie., pre-UltraSPARC era), for some reason they hesitate to use -xtarget option with any value other than generic (default), in building their softwares. Perhaps they are not aware of the benefits of specifying target platform and/or not spending enough time experimenting with different values to compare the performance.In general, it is always recommended to specify the target platform with -xtarget option, and the target instruction set architecture with -xchip option, for...
Thursday, 1 December 2005
Sun Studio 11: Asynchronous Profile Feedback Data Collection
Posted on 22:17 by Unknown
Sun released Studio 11 compiler collection, couple of weeks back, and giving it away for free, for everyone (Studio 10 is also freely downloadable from Sun downloads web site; but the only requirement is that the user must register at OpenSolaris web site)About asynchronous profile collectionAsynchronous profile feedback data collection is one of the new features in this release. However the data collection part is totally transparent to the end user, and hence this feature was neither documented nor highlighted anywhere. In simple words, this...
Monday, 14 November 2005
Sun Studio C/C++: Tuning iropt for inline control
Posted on 22:47 by Unknown
It is desirable to inline as many hot routines as possible to reduce the run-time overhead of CPU intensive applications. In general, it appears that compilers go by their own rules when to inline a routine, and when to not inline it. This blog post is intended to introduce some of the not widely known (or used) compiler internal flags, to tweak the pre-defined rules of compiler. Consider the following trivial C code:% cat inline.c#include <stdio.h>#include <stdlib.h>inline void freememory(int *ptr){ free(ptr);}extern inline...
Sunday, 6 November 2005
Sun Studio: Gathering memory allocations/leaks data, from a running process
Posted on 20:11 by Unknown
One simple way of collecting this information is with the runtime checking (RTC) feature of dbx, as described in Investigating memory leaks with dbx. Yet another way is to use the collector to get this data, if the process is already running under dbx.Note that running the application under collect tool, with heap tracing on {with -H on option}, produces overwhelming data which includes all the leaks that occured in the life span of the process. So, if we need to collect the data only for a specific component of the application, clearly running...
Subscribe to:
Posts (Atom)