Page 149 - DCAP108_DIGITAL_CIRCUITS_AND_LOGIC_DESIGNS
P. 149

Digital Circuits and Logic Design



                   Notes
                                   The challenge was to build own memory manager which ensures increasing of application
                                   runtime performance when new CPU is added and which must be memory space efficient
                                   and very fast.
                                   Solution and key benefits
                                   We developed our own memory manager. It uses advanced memory management algorithm.
                                   The key benefits of our memory manager are:
                                   it does not use critical sections (uses no-blocking algorithm)
                                   it does not require CPU context switching

                                   Memory Manager 100% effectively consumes all CPUs which are in system
                                   Memory Manager does not have performance degradation when CPU count increases
                                   (performance of other memory managers either do not increase or even decrease when CPU
                                   count increase)
                                   optimized work with memory blocks of any size

                                   even after long time of work memory is not fragmented.
                                   It is very important for web applications, or for applications which should run for long time
                                   without restart - like database servers, operation systems, etc
                                   Memory Manager has built-in logic to capture memory leaks and do memory dumps to see
                                   memory disposition/reallocations during application execution

                                   You do not need to make any changes in your existing code to use our Memory Manager
                                   Test application
                                   Application creates a specified number of threads. Each thread executes same actions
                                   (emulating memory manager real usage): randomly selects pointer from an array and allocates
                                   block of memory if pointer is not assigned or frees memory if pointer is assigned. Size of the
                                   memory block is random within defined margins. Application calculates total number of
                                   memory block allocations and releases in millions per sec. Resulting value is the maximum
                                   value achieved during specified period (higher is better).

                                   Test system configuration: CPU - Inter Core 2 Quad (4 cores), OS - Windows Server 2003
                                   Testing Results
                                   Memory Manager     1 thread  2 threads 3       4 threads  10 threads 50 threads
                                   (expected performance        (+100%)  threads  (+300%)  (+300%)  (+300%)
                                   growth)                               (+200%)
                                   Our Memory Manager 33.9 m/sec 6 7 . 8 m / 101.6  131.5 m/ 132.0 m/ 134.5 m/
                                                                sec      m/sec    sec      sec      sec
                                   (actual  performance         (+100%)  (+199%)  (+287%)  (+289%)  (+296%)
                                   growth)
                                   Microsoft .NET 2.0 (*)  15.2 m/sec 2 7 . 8 m / 37.2 m/ 4 5 . 7 m / 4 2 . 6 m / 39.3m/
                                   (actual  performance         sec      sec      sec      sec      sec
                                   growth)                      (+82%)   (+144%)  (+200%)  (+180%)  (+158%)
                                   Borland Delphi 2006  23.5 m/sec 21.0 m/ 20.7 m/ 2 0 . 5 m / 1 9 . 7 m / 19.3m/
                                   (actual  performance         sec      sec      sec      sec      sec
                                   growth)                      (–11%)   (–12%)   (–13%)   (–16%)   (–18%)


                                                                                                      Contd...



        144                               LOVELY PROFESSIONAL UNIVERSITY
   144   145   146   147   148   149   150   151   152   153   154