Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. C++ questions - memory allocation speed and using an instance of a class

C++ questions - memory allocation speed and using an instance of a class

Scheduled Pinned Locked Moved C / C++ / MFC
performancequestionc++data-structures
2 Posts 2 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • I Offline
    I Offline
    Indrawati
    wrote on last edited by
    #1

    Hi I have two questions on C++: 1. If my application continuously allocate and relase memory (each allocation is around 40Kb, and there may be around 40 allocations and deallocations on each iteration), will the application run faster if I were to write a memory manager class that, instead of freeing the allocated memory, it stores it in e.g. a linked list and reuse it when the app requests for memory? 2. If using a memory manager class will be faster, how can I share an instance of this class among all the classes that needs it? I think it will be more efficient to just create one memory manager instance and share it among all the classes, instead of creating one instance of the memory manager for each class that needs it. Thanks!

    P 1 Reply Last reply
    0
    • I Indrawati

      Hi I have two questions on C++: 1. If my application continuously allocate and relase memory (each allocation is around 40Kb, and there may be around 40 allocations and deallocations on each iteration), will the application run faster if I were to write a memory manager class that, instead of freeing the allocated memory, it stores it in e.g. a linked list and reuse it when the app requests for memory? 2. If using a memory manager class will be faster, how can I share an instance of this class among all the classes that needs it? I think it will be more efficient to just create one memory manager instance and share it among all the classes, instead of creating one instance of the memory manager for each class that needs it. Thanks!

      P Offline
      P Offline
      palbano
      wrote on last edited by
      #2

      Indrawati wrote: will the application run faster if I were to write a memory manager class This is a great post! In Win32 this would only be true if you think you can improve upon the systems memory manager.

      By default, the Process heap performs coalescing operations. (Coalescing is the act of combining adjacent free blocks to build a larger block.) Coalescing costs additional cycles but reduces internal fragmentation of heap blocks.

      From: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dngenlib/html/heap3.asp[^]

      "No matter where you go, there your are." - Buckaroo Banzai

      -pete

      1 Reply Last reply
      0
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • World
      • Users
      • Groups