Skip to main content

Profiling and Analysis of Dynamic Applications

  • Chapter
  • First Online:
Dynamic Memory Management for Embedded Systems

Abstract

As explained in Chap. 2, the problem of optimizing the design of dynamic embedded systems lays on exploiting as much as possible static (design-time) knowledge on the applications, but still leaving space for run-time considerations that allow tackling dynamic variations without resorting to worst case solutions. This requires extensive information about the static and dynamic characteristics of the applications. However, there is not a standard definition or representation of software metadata to typify the characteristics of the dynamic data access behavior of applications because of varying inputs.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 54.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    “Orthogonal” and “independent of each other” are used interchangeably in the text.

  2. 2.

    This is an important factor when using the profiling techniques proposed in this chapter. The fact that every access to every dynamic object in the application is logged introduces a high overhead on execution time. The case study shown in this chapter is based on network traces that were collected off-line and thus the whole activity of the system can be replayed using a notion of “virtual execution time” that is independent from the actual “wall time” that it takes to run the experiments. However, for cases where the behavior of the system cannot be analyzed without a real notion of time (i.e., systems where the behavior changes subject to real-time conditions), more advanced profiling techniques out of the scope of this chapter would be needed. For example, the memory subsystem could be augmented during development with a parallel structure to log the different data accesses in real-time, as presented in [40].

  3. 3.

    This “perfect” solution is calculated by selecting the optimal DDT combination for each input case in isolation. Then, the configuration selected is compared against each of them to calculate how far it lies from the optimal for each input case.

  4. 4.

    Even if the \(0\) Byte TCP segment is empty, according to the rules of the C/C++ programming language, an allocation of zero bytes is valid and must return a valid (not NULL) object. However, the actual size of the object is zero bytes and the application cannot access any bytes at this address. Indeed, the previous versions of the C++ standard did not require that a distinct block was returned for zero-size blocks. Based on this fact, an additional optimization may be introduced in the memory manager to ease the allocation of zero-byte blocks: the memory manager may use a fixed block to host all of these requests. Actually, this method could be used to detect application errors during the developing phase by making this special block access-protected.

  5. 5.

    This weight is calculated taking into account the number of memory accesses that are logged between the MallocBegin and MallocEnd profiling tokens, and between the FreeBegin and FreeEnd ones. These accesses correspond to the work that the memory manager has to do in order to handle each application request. The fraction of accesses that correspond to the overhead of doing memory management, i.e., their weight, is obtained dividing this number between the total number of memory accesses.

  6. 6.

    This improvement refers to the energy consumption in the memory subsystem. It is small because the processor and the DMA access the DRAM concurrently and, as the graph shows, there is a slight increase of row activations. The penalty in energy consumption of these additional row activations masks the benefits obtained by using the DMA. However, the total energy consumption of the system may be reduced much more because first, the DMA is more efficient accessing the memory than the processor and, second, the number of cycles that the processor spends accessing the memory is reduced, potentially allowing it to finish other tasks sooner.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to David Atienza Alonso .

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this chapter

Cite this chapter

Atienza Alonso, D. et al. (2015). Profiling and Analysis of Dynamic Applications. In: Dynamic Memory Management for Embedded Systems. Springer, Cham. https://doi.org/10.1007/978-3-319-10572-7_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-10572-7_3

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-10571-0

  • Online ISBN: 978-3-319-10572-7

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics