【问题标题】:Measure using memory of function in different languages使用不同语言的功能记忆进行测量
【发布时间】:2020-07-07 08:48:04
【问题描述】:

我有一项任务,其中包括测量某个代码块的使用内存(虚拟或 Ram 等 [在所有四种语言中都必须相同])。

例如使用内存进行冒泡排序。

我使用四种语言:

  • Java
  • C
  • 帕斯卡
  • Python

对于 Java,我找到了一个测量虚拟内存的 runtimeclass。

对于 Python,我找到了一个 tracemallocclass。在文档中,我发现 tracemalloc 测量分配内存。

我可以将tracemalloc 结果与runtime 结果进行比较吗?

您对如何在 C 和 Pascal 中使用内存进行测量有什么建议吗?

【问题讨论】:

  • 如果要对 100 个字节进行冒泡排序,则需要 102 个字节的内存(100 个用于数据,2 个用于索引)。

标签: java python c memory pascal


【解决方案1】:

我认为 Free Pascal Compiler 的最佳选择是write your own memory manager(您可以在其中简单地跟踪调用并将调用重定向到默认 MM)。

在 C 中,您可以编写自己的 mallocreallocfree,在 C++ 中,您可以重载 newdelete(参见 Effective C++ 第 8 章“自定义新建和删除”),但仅限对于您控制的来源。一般情况下的跟踪似乎很棘手。最佳解决方案的选择取决于您的项目的组织方式、您想要支持的编译器、构建环境、您需要的精度等。

【讨论】:

    猜你喜欢
    • 2010-12-28
    • 2011-01-24
    • 1970-01-01
    • 2016-09-28
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 1970-01-01
    相关资源
    最近更新 更多