Sponsored Content
Top Forums Programming Why memory allocated through malloc should be freed ? Post 302350457 by matrixmadhan on Thursday 3rd of September 2009 11:34:20 PM
Old 09-04-2009
Considering the lifetime of a process, assuming that its short lived and its not ok to accept memory leaks in the code.

1. Same thing might happen to a daemon - which will bring down system
2. Trigger OOM errror
3. A bug in short lived process (assuming its short lived) which eventually might be using up all the resources.
4. Even for a short lived process, if the memory consumption is exponential, then we are done in much lesser time

So, the rule is - no memory leaks in the code and no memory leaks whatever be the life span of the process memory image Smilie
 

10 More Discussions You Might Find Interesting

1. Solaris

Memory allocated

Hi, How to find out what is the maximum memory allocated to TOMCAT server in SunOS 5.8? The Tomcat server crashes down during peak times.... Regards (1 Reply)
Discussion started by: baanprog
1 Replies

2. Programming

malloc gives the same memory to two different nodes. How to deal with it?

When allocating memory for two different nodes, the resulting memory are the same. Clearly, this will lead to a mistake. This happened in a function. And the process must be in a function. (gdb) p tree->list $43 = (node *) 0x8be4180 (gdb) p tree->list $44 = (node *) 0x8be4180 At the... (2 Replies)
Discussion started by: cdbug
2 Replies

3. Solaris

Memory usage in Solaris - memory not freed?

Hi, I'm running a multi-process software system on a Solaris 8 machine. When I monitor the memory usage, I see that the free memory is dropping rapidly, but I can't detect a process that uses this memory. I'm using "top" to get the free memory and the memory usage of processes. Thanks. (3 Replies)
Discussion started by: gewurtz
3 Replies

4. AIX

amount of memory allocated to large page

We just set up a system to use large pages. I want to know if there is a command to see how much of the memory is being used for large pages. For example if we have a system with 8GB of RAm assigned and it has been set to use 4GB for large pages is there a command to show that 4GB of the *GB is... (1 Reply)
Discussion started by: daveisme
1 Replies

5. HP-UX

how to find size of memory allocated to a pointer?

Hi, Am new to HP UX , is there a way to find out the size of memory allocated to a pointer on hp ux? For example we can use the _msize() on windows to find the size of memory allocated to a pointer . #include <stdio.h> #include <malloc.h> void main() { void *buffer; ... (0 Replies)
Discussion started by: Wkdunreal
0 Replies

6. Programming

Regarding the maximum memory allocated by malloc() function on HP-UX B11.11

In a 'C' program,when I am trying to allocate memory with the help of malloc () function, it is allocating the memory up to a certain limit for e.g. in my case, it is 670 MB (approx). malloc() returns NULL if I allocate more than this amount of memory.When I tried to allocate memory in chunks of... (1 Reply)
Discussion started by: vipinsachan
1 Replies

7. Programming

./match_pattern.out: malloc(): memory corruption: 0x0000000013a11600 ***

Hi All, I have a simple code which does some computation by matching string patterns. In brief: 1. The code reads .dat and .txt files. 2. .dat files are huge text files and .txt files contain some important words. 3. I am just doing strstr to find the patterns. 4. The function returns the... (3 Replies)
Discussion started by: shoaibjameel123
3 Replies

8. Programming

glib detected: malloc() memory curruption

I am using libxml2 library for XMl parsing and libxml++ is C++ wrapper over that. So I am using API of libxml++. I am creating my class and composing instance xmlpp::Node *pNode in that. my class also have funciton prepareXPathQuery() which creates query string and have other fucntion... (2 Replies)
Discussion started by: sharadwagh
2 Replies

9. Red Hat

KVM/Qemu allocated memory not showing in guest

So we have a RHEL 7.6 workstation with 128 gigs of ram. The OS sees all the ram and 80 cors (40 HT) We have 1 guest with 8 CPUs and 32gigs of ram running RHEL 7.6 workstation as well. We are trying to create another guest with 64 CPUs and 80 gigs of ram. We setup the system using... (0 Replies)
Discussion started by: joeg1484
0 Replies

10. UNIX for Beginners Questions & Answers

How to change allocated memory for a process?

Hello, I am running ubuntu 14.04 in a server with 32GB ram. Due to receiving "high load" errors during ssh connection, I took a look at what's happening from command line. I detected that 20GB of total memory was allocated to a program. Below you can see some initial part of installation... (4 Replies)
Discussion started by: baris35
4 Replies
ppgsz(1)							   User Commands							  ppgsz(1)

NAME
ppgsz - set preferred page size for stack, heap, and/or other anonymous segments SYNOPSIS
/usr/bin/ppgsz [-F] -o option[,option] cmd | -p pid... DESCRIPTION
The ppgsz utility sets the preferred page size for stack, heap, and/or other anonymous segments for the target process(es), that is, the launched cmd or the process(es) in the pid list. ppgsz stops the target process(es) while changing the page size. See memcntl(2). OPTIONS
The following options are supported: -F Force. Sets the preferred page size options(s) for target process(es) even if controlled by other process(es). Cau- tion should be exercised when using the -F flag. See proc(1). -o option[,option] The options are: heap=size This option specifies the preferred page size for the heap of the target process(es). heap is defined to be the bss (uninitialized data) and the brk area that immediately follows the bss (see brk(2)). The preferred heap page size is set for the existing heap and for any additional heap memory allocated in the future. See NOTES. stack=size This option specifies the preferred page size for the stack of the target process(es). The preferred stack page size is set for the existing stack and newly allocated parts of the stack as it expands. anon=size This option specifies the preferred page size for all existing MAP_PRIVATE anonymous segments of the target process(es), other than heap and stack, which are large enough to fit at least one aligned page of the speci- fied size. For the segments that are large enough, the preferred page size is set starting at the first size- aligned address in the segment. The anon preferred pagesize is not applied to MAP_PRIVATE anonymous segments created in the future. See MAP_ANON in mmap(2). Anonymous memory refers to MAP_PRIVATE pages that are not directly associated with a file in some filesystem. The ppgsz command uses memcntl(2) to set the preferred page size for anonymous segments. See MC_HAT_ADVISE in memcntl(2). At least one of the above options must be specified. size must be a supported page size (see pagesize(1)) or 0, in which case the system will select an appropriate page size. See memcntl(2). size defaults to bytes and can be specified in octal(0), decimal, or hexadecimal(0x). The numeric value can be qualified with K, M, G, or T to specify Kilobytes, Megabytes, Gigabytes, or Terabytes, respectively. 4194304, 0x400000, 4096K, 0x1000K, and 4M are different ways to specify 4 Megabytes. -p pid Sets the preferred page size option(s) for the target process(es) in the process-id (pid) list following the -p option. The pid list can also consist of names in the /proc directory. Only the process owner or the super-user is permitted to set page size. cmd is interpreted if -p is not specified. ppgsz launches cmd and applies page size option(s) to the new process. The heap and stack preferred page sizes are inherited. Child process(es) created (see fork(2)) from the launched process or the target process(es) in the pid list after ppgsz completes will inherit the preferred heap and stack page sizes. The preferred page sizes of all segments are set back to the default system page size on exec(2) (see getpagesize(3C)). The preferred page size for all other anonymous segments is not inherited by children of the launched or target process(es). EXAMPLES
Example 1: Setting the preferred heap and stack page size The following example sets the preferred heap page size to 4M and the preferred stack page size to 512K for all ora--owned processes run- ning commands that begin with ora: example% ppgsz -o heap=4M,stack=512K -p `pgrep -u ora '^ora'` Example 2: Setting the preferred anonymous page size The following example sets the preferred page size of existing qualifying anonymous segments to 512k for process ID 953: example% ppgsz -o anon=512k -p 953 EXIT STATUS
If cmd is specified and successfully invoked (see exec(2)), the exit status of ppgsz will be the exit status of cmd. Otherwise, ppgsz will exit with one of the following values: 0 Successfully set preferred page size(s) for processes in the pid list. 125 An error occurred in ppgsz. Errors include: invalid argument, invalid page size(s) specified, and failure to set preferred page size(s) for one or more processes in the pid list or cmd. 126 cmd was found but could not be invoked. 127 cmd could not be found. FILES
/proc/* Process files. /usr/lib/ld/map.bssalign A template link-editor mapfile for aligning bss (see NOTES). ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWesu (32-bit) | +-----------------------------+-----------------------------+ | |SUNWesxu (64-bit) | +-----------------------------+-----------------------------+ |Interface Stability |Evolving | +-----------------------------+-----------------------------+ SEE ALSO
ld(1), mpss.so.1(1), pagesize(1), pgrep(1), pmap(1), proc(1), brk(2), exec(2), fork(2), memcntl(2), mmap(2), sbrk(2), getpagesize(3C), proc(4), attributes(5) Linker and Libraries Guide NOTES
Due to resource constraints, the setting of the preferred page size does not necessarily guarantee that the target process(es) will get the preferred page size. Use pmap(1) to view the actual heap and stack page sizes of the target process(es) (see pmap -s option). Large pages are required to be mapped at addresses that are multiples of the size of the large page. Given that the heap is typically not large page aligned, the starting portions of the heap (below the first large page aligned address) are mapped with the system memory page size. See getpagesize(3C). To provide a heap that will be mapped with a large page size, an application can be built using a link-editor (ld(1)) mapfile containing the bss segment declaration directive. Refer to the section ``Mapfile Option'' in the Linker and Libraries Guide for more details of this directive and the template mapfile provided in /usr/lib/ld/map.bssalign. Users are cautioned that an alignment specification may be machine-specific and may lose its benefit on different hardware platforms. A more flexible means of requesting the most optimal underlying page size may evolve in future releases. mpss.so.1(1), a preloadable shared object, can also be used to set the preferred stack and/or heap page sizes. SunOS 5.10 23 Jan 2003 ppgsz(1)
All times are GMT -4. The time now is 07:15 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy