我有一个我想分析的HotSpot JVM堆转储.VM运行时-Xmx31g,堆转储文件大48 GB.
jhat,因为它需要大约五倍的堆内存(在我的情况下将是240 GB)并且非常慢.ArrayIndexOutOfBoundsException在分析堆转储几个小时后崩溃.还有哪些其他工具可用于该任务?一套命令行工具是最好的,包括一个程序,它将堆转储转换为高效的数据结构进行分析,并与其他几个处理预结构化数据的工具相结合.
最近从eclipse切换到android studio.如何检查android studio中的app堆和内存分配?在Eclipse中我们有MAT在工作室中有什么东西来检查堆转储,hprof文件?
如何在 MacOS 上诊断 Docker 的原因,特别是com.docker.hyperkit使用 100% 的 CPU?
Docker stats 显示所有正在运行的容器都具有较低的 CPU、内存、网络 IO 和块 IO。
iosnoop 显示com.docker.hyperkit每秒对文件执行大约 50 次写入,总计每秒 500KB Docker.qcow2。根据什么是 Docker.qcow2?,Docker.qcow2是一个稀疏文件,是所有 Docker 容器的持久存储。
在我的情况下,文件不是那么稀疏。物理大小与逻辑大小相匹配。
dtrusssudo dtruss -p $DOCKER_PID显示大量psynch_cvsignal和psynch_cvwait调用。
psynch_cvsignal(0x7F9946002408, 0x4EA701004EA70200, 0x4EA70100) = 257 0
psynch_mutexdrop(0x7F9946002318, 0x5554700, 0x5554700) = 0 0
psynch_mutexwait(0x7F9946002318, 0x5554702, 0x5554600) = 89474819 0
psynch_cvsignal(0x10BF7B470, 0x4C8095004C809600, 0x4C809300) = 257 0
psynch_cvwait(0x10BF7B470, 0x4C8095014C809600, 0x4C809300) = 0 0
psynch_cvwait(0x10BF7B470, …Run Code Online (Sandbox Code Playgroud) 我想知道是否有可能以R类似于matlabProfiler 的方式从-Code 获取配置文件.也就是说,要了解哪个行号特别慢.
到目前为止,我所取得的成绩在某种程度上并不令人满意.我曾经Rprof让我成为个人资料档案.使用summaryRprof我获得如下内容:
Run Code Online (Sandbox Code Playgroud)$by.self self.time self.pct total.time total.pct [.data.frame 0.72 10.1 1.84 25.8 inherits 0.50 7.0 1.10 15.4 data.frame 0.48 6.7 4.86 68.3 unique.default 0.44 6.2 0.48 6.7 deparse 0.36 5.1 1.18 16.6 rbind 0.30 4.2 2.22 31.2 match 0.28 3.9 1.38 19.4 [<-.factor 0.28 3.9 0.56 7.9 levels 0.26 3.7 0.34 4.8 NextMethod 0.22 3.1 0.82 11.5 ...
和
Run Code Online (Sandbox Code Playgroud)$by.total total.time total.pct self.time self.pct data.frame 4.86 68.3 0.48 6.7 rbind …
这真的是一个简单的问题:
我正在编写Go程序.我应该用一个QVector<int>或QVector<Player>哪个代表董事会
enum Player
{
EMPTY = 0,
BLACK = 1,
WHITE = 2
};
Run Code Online (Sandbox Code Playgroud)
我想当然,使用Player而不是整数会更慢.但我想知道还有多少,因为我相信使用enum更好的编码.
我做了一些关于分配和比较玩家的测试(相对于int)
QVector<int> vec;
vec.resize(10000000);
int size = vec.size();
for(int i =0; i<size; ++i)
{
vec[i] = 0;
}
for(int i =0; i<size; ++i)
{
bool b = (vec[i] == 1);
}
QVector<Player> vec2;
vec2.resize(10000000);
int size = vec2.size();
for(int i =0; i<size; ++i)
{
vec2[i] = EMPTY;
}
for(int i =0; i<size; ++i)
{
bool b …Run Code Online (Sandbox Code Playgroud) sql2k8中的活动监视器允许我们查看最昂贵的查询.好的,这很酷,但有没有办法可以通过查询分析器记录此信息或获取此信息?我真的不想打开Sql Management控制台,而是查看活动监视器仪表板.
我想弄清楚哪些查询写得不好/架构设计不当等等.
谢谢你的帮助!
我下载了SQL Server 2008,似乎无法在任何地方找到SQL Profiler.
我相信我安装了SQL Server Enterprise Express /试用版?
我想这毕竟是Express而不是Enterprise?
所以在Java中,我们可以做如何测量函数执行所花费的时间
但它是如何在python中完成的?要测量代码行之间的时间开始和结束时间?这样做的东西:
import some_time_library
starttime = some_time_library.some_module()
code_tobe_measured()
endtime = some_time_library.some_module()
time_taken = endtime - starttime
Run Code Online (Sandbox Code Playgroud) 我正在使用Windows上的python进行编程,并希望准确地测量函数运行所需的时间.我编写了一个函数"time_it",它接受另一个函数,运行它,并返回运行所花费的时间.
def time_it(f, *args):
start = time.clock()
f(*args)
return (time.clock() - start)*1000
Run Code Online (Sandbox Code Playgroud)
我称之为1000次,并对结果取平均值.(最后的1000常量是以毫秒为单位给出答案.)
这个功能似乎有效,但我有这种唠叨的感觉,我做错了,通过这样做,我使用的时间超过了它运行时实际使用的功能.
是否有更标准或可接受的方式来做到这一点?
当我更改我的测试函数以调用打印以使其花费更长时间时,我的time_it函数返回平均2.5 ms,而cProfile.run('f()')返回并平均为7.0 ms.我认为我的功能会高估时间,如果有的话,这里发生了什么?
还有一点需要注意,它是我所关心的功能相对时间,而不是绝对时间,因为这显然会因硬件和其他因素而异.
我一直在寻找对VisualVM上下文中"自我时间"实际引用的一致而清晰的解释,以及它与"自我时间(cpu)"的区别.'自我时间[%]'也指自我时间或自我时间CPU.
似乎没有太多关于此的文档,或者至少我没有找到它.所以任何想法/意见将不胜感激.