小编Mat*_*_SX的帖子

/ usr/bin/time如何衡量内存使用情况?

我正在实现一个算法,并希望测量它的时间和内存消耗.在我的帮助下,我编写了自己的测量实用程序,它可以读取/proc/[pid]/stat用户和系统消耗的时间量,以及虚拟内存和常驻设置的峰值大小.(我不是100%清楚这两个内存统计数据之间的差异,但这不是手头的问题.)

到目前为止一直很好,但随之而来的是第三方实施,我希望比较我自己的程序.由于我不想摆弄它的来源,我无法使用我自己的测量程序收集有关其效率的数据(我可能会,但它需要我重新考虑我的测量方案).所以我发现/usr/bin/time也采取了这些措施.

当我比较输出时,我发现/usr/bin/time确实报告与我自己的工具相同的时间使用,但内存数据是非常不同的.首先,/usr/bin/time不报告有关虚拟内存使用情况的任何内容,它仅提供最大驻留集大小的帖子.其次,报告的居民规模大小/usr/bin/time比我自己的措施大六到八倍.

所以,我一直试图找出/usr/bin/time实际测量的方式,以及差异为何如此根本.另外,哪个是正确的值?

输出示例(单位为MB):

<program>: <virtual mem> <resident set size>
autotest (my own utility): 23.2266 2.19531
/usr/bin/time: N/A 11.23437
Run Code Online (Sandbox Code Playgroud)

我使用的是GNU/Linux 3.8.13 Mageia 3 x86_64.

编辑:作为一个信心提升,我发现KDE系统监视器支持我自己的实用程序报告的数据.事实上,它从我所在的地方获取信息.因此,信任数据/proc/[pid]/stat应该非常安全.但问题仍然存在......

编辑2:在下面的答案的帮助下,推断出这wait3()是GNU使用的命令time.它以手册页getrusage(2)中描述的形式返回数据.在RSS上,它说:

这是使用的最大驻留集大小(以千字节为单位).

手册页也指proc/[pid]/stat,其中说

驻留集大小:进程在实际内存中的页数.这只是计算文本,数据或堆栈空间的页面.这不包括未加载需求或换出的页面.

那么,第二个版本在短短的测量更加精确我的程序的内存使用情况,并在第一个版本还可以测量某种外部库使用的?

c++ linux time

6
推荐指数
1
解决办法
1941
查看次数

Java中的JFrame

我使用JFrame作为主框架的弹出窗口,用户应输入一些信息,然后按确定.但问题是,一旦这个子框架打开,我希望程序在按下OK按钮之前忽略任何其他信号,类似于JOptionPanes的操作方式.就像现在一样,你可以点击按钮多次打开子框架,从而获得几个框架,这不是意图(它甚至会导致很多错误).

我可以使用一个布尔值来解决它,一旦按下确定按钮就是真的,但这似乎不是一个很好的解决方法.我觉得还有其他一些方法可以做到这一点,因为我可以看到来自我的JOptionPanes的广受欢迎的效果,但却无法实现.

干杯.

java swing jframe

5
推荐指数
2
解决办法
992
查看次数

标签 统计

c++ ×1

java ×1

jframe ×1

linux ×1

swing ×1

time ×1