05-25-2007
Quote:
Originally Posted by DreamWarrior
...rather I must store offsets and let the application compute the actual pointer value by adding its individual "base address." This is obviously performance draining....
So...how is that "obstacle" usally overcome?
I do not share your trepidation regarding the performance hit. This is virtually the definition of of an array reference is performed and I use arrays quite a bit. Switching your app entirely to arrays and never using pointers at all might actually improve performance provided that you use the optimizer. In any event, many implementations to not allow you to choose the address of a shared memory segment and portable code should not rely on having that option. Shared libraries are compiled using PIC (position independent code) despite the fact that there is often a minor performance hit with PIC. Shared data segments should also be position independent. It's the cost of doing business.
10 More Discussions You Might Find Interesting
1. Programming
hello all
I want to work in shared libraries how can i work in
Linux Environment ? (2 Replies)
Discussion started by: rajashekaran
2 Replies
2. HP-UX
I have this error when I try to do check on the oracle database...
Can you help me figure out whats the problem? Thanks for all the help!
/usr/lib/pa20_64/dld.sl: Unable to find library 'libjox8.sl'.
/usr/lib/pa20_64/dld.sl: Unable to find library 'libjox8.sl'. ... (1 Reply)
Discussion started by: vinz
1 Replies
3. UNIX for Advanced & Expert Users
I am running HP-UX B.11.11.
I'm increasing a parameter for a database engine so that it uses more memory to buffer the disk drive (to speed up performance). I have over 5GB of memory not being used.
But when I try to start the DB with the increased buffer parameter I get told.
"Not... (1 Reply)
Discussion started by: cjcamaro
1 Replies
4. UNIX for Advanced & Expert Users
What is the primary difference between static library and dynamic library?
and how to write static shared library? (1 Reply)
Discussion started by: areef4u
1 Replies
5. Programming
I am writing a shared library in Linux (but compatible with other UNIXes) and I want to allow multiple instances to share a piece of memory -- 1 byte is enough. What's the "best" way to do this? I want to optimize for speed and portability.
Obviously, I'll have to worry about mutual exclusion. (0 Replies)
Discussion started by: otheus
0 Replies
6. Shell Programming and Scripting
Hi:
I have a library that it only offers Makefile for building static library. It built libxxx.a file. How do I in any way build a shared library? (either changin the Makefile or direct script or command to build shared library)
Thanks. (1 Reply)
Discussion started by: cpthk
1 Replies
7. UNIX for Dummies Questions & Answers
Each shared library may contain sections with allocatable flag as below:
...
.hash
.gnu.hash
.dynsym
.dynstr
.gnu.version
.gnu.version_d
.rel.dyn
.rel.plt
.plt
...
My questions is that: among above sections, which of them should be loaded in the physical memory by run-time linker... (3 Replies)
Discussion started by: Dongping84
3 Replies
8. OS X (Apple)
I'm trying to get Valgrind to work with an openmpi application in OS X. However I want to hardcode the path to a shared library called libmpiwrap-amd64-darwin.so into my application so that it is available at runtime. In Linux this is relatively simple, I would just add the option... (0 Replies)
Discussion started by: Valgrinder
0 Replies
9. Programming
Hello.
I am new to this forum and I would like to ask for advice about low level POSIX programming.
I have to implement a POSIX compliant C shared library.
A file will have some variables and the shared library will have some functions which need those variables.
There is one special... (5 Replies)
Discussion started by: iamjag
5 Replies
10. AIX
I'm trying to install libiconv to AIX 7.1 from an rpm off of the perzl site. The rpm appears to install but I get this error message.
add shr4.o shared members from /usr/lib/libiconv.a to /opt/freeware/lib/libiconv.a
add shr.o shared members from /usr/lib/libiconv.a to ... (5 Replies)
Discussion started by: kneemoe
5 Replies
shmmax(5) File Formats Manual shmmax(5)
NAME
shmmax - maximum size (in bytes) for a System V shared memory segment
VALUES
Default
Allowed values
DESCRIPTION
Shared memory is an efficient InterProcess Communications (IPC) mechanism. One process creates a shared memory segment and attaches it to
its address space. Any processes looking to communicate with this process through the shared memory segment, then attach the shared memory
segment to their corresponding address spaces as well. Once attached, a process can read from or write to the segment depending on the
permissions specified while attaching it.
This tunable sets the maximum size for such a segment within the system, and is dynamic as of HP-UX 11i.
Who is Expected to Change This Tunable?
Anyone.
Restrictions on Changing
Changes to this tunable take effect immediately.
When Should the Value of This Tunable Be Raised?
should be raised if it is below the maximum and user programs are attempting to segments larger than the current value, and receiving an
error message.
What Are the Side Effects of Raising the Value?
The only effect is that user programs can use to get larger segments.
When Should the Value of This Tunable Be Lowered?
If you wish to enforce behavior on the user's code, limiting the maximum size of System V segments.
What Are the Side Effects of Lowering the Value?
None.
What Other Tunable Values Should Be Changed at the Same Time?
and should be considered because enforcing smaller segments may cause the user's code to try to create more segments to accomplish the
task.
WARNINGS
All HP-UX kernel tunable parameters are release specific. This parameter may be removed or have its meaning changed in future releases of
HP-UX.
Installation of optional kernel software, from HP or other vendors, may cause changes to tunable parameter values. After installation,
some tunable parameters may no longer be at the default or recommended values. For information about the effects of installation on tun-
able values, consult the documentation for the kernel software being installed. For information about optional kernel software that was
factory installed on your system, see at
AUTHOR
was developed by HP.
SEE ALSO
shmem(5), shmmni(5), shmseg(5).
Tunable Kernel Parameters shmmax(5)