tree: a660a3365359bd89fa5b94d5228795cf84ecab55 [path history] [tgz]
  1. MemcmpGoogleA.csv
  2. MemcmpGoogleB.csv
  3. MemcmpGoogleD.csv
  4. MemcmpGoogleL.csv
  5. MemcmpGoogleM.csv
  6. MemcmpGoogleQ.csv
  7. MemcmpGoogleS.csv
  8. MemcmpGoogleU.csv
  9. MemcmpGoogleW.csv
  10. MemcpyGoogleA.csv
  11. MemcpyGoogleB.csv
  12. MemcpyGoogleD.csv
  13. MemcpyGoogleL.csv
  14. MemcpyGoogleM.csv
  15. MemcpyGoogleQ.csv
  16. MemcpyGoogleS.csv
  17. MemcpyGoogleU.csv
  18. MemcpyGoogleW.csv
  19. MemmoveGoogleA.csv
  20. MemmoveGoogleB.csv
  21. MemmoveGoogleD.csv
  22. MemmoveGoogleL.csv
  23. MemmoveGoogleM.csv
  24. MemmoveGoogleQ.csv
  25. MemmoveGoogleS.csv
  26. MemmoveGoogleU.csv
  27. MemmoveGoogleW.csv
  28. MemsetGoogleA.csv
  29. MemsetGoogleB.csv
  30. MemsetGoogleD.csv
  31. MemsetGoogleL.csv
  32. MemsetGoogleM.csv
  33. MemsetGoogleQ.csv
  34. MemsetGoogleS.csv
  35. MemsetGoogleU.csv
  36. MemsetGoogleW.csv
  37. README.md
  38. Uniform384To4096.csv
libc/benchmarks/distributions/README.md

Size distributions for memory functions under specific workloads

This folder contains a set of files that are included from libc/benchmarks/MemorySizeDistributions.cpp.

Offloading this data to individual files helps

  • C++ editors (large arrays are usually not well handled by editors),
  • and allows processing data by other tools to perform analysis or graph rendering.

Format

Most filenames are of the form {MemoryFunctionName}{WorkloadID}.csv. They contain a single line of comma separated real values representing the probability that a particular size occurs. e.g.

  • "0,1" indicates that only the size 1 occurs,
  • "0.5,0.5" indicates sizes 0 and 1 occur with the same frequency.

These files usually contains sizes from 0 to 4096 inclusive. To save on space trailing zeros are discarded.

Workloads

As identified in the automemcpy paper:

  • GoogleA <-> service 4
  • GoogleB <-> database 1
  • GoogleD <-> storage
  • GoogleL <-> logging
  • GoogleM <-> service 2
  • GoogleQ <-> database 2
  • GoogleS <-> database 3
  • GoogleU <-> service 3
  • GoogleW <-> service 1

Uniform384To4096 is an additional synthetic workload that simply returns a uniform repartition of the sizes from 384 to 4096 inclusive.

Note

Except for GoogleD, all distributions are gathered over one week worth of data.