我在我的一个程序上运行了ruby-profiler.我想弄清楚每个字段的含义.我猜测一切都是CPU时间(而不是挂钟时间),这太棒了.我想了解"---"代表什么.那里有某种堆栈信息.调用a/b是什么意思?
Thread ID: 81980260
Total Time: 0.28
%total %self total self wait child calls Name
--------------------------------------------------------------------------------
0.28 0.00 0.00 0.28 5/6 FrameParser#receive_data
100.00% 0.00% 0.28 0.00 0.00 0.28 6 FrameParser#read_frames
0.28 0.00 0.00 0.28 4/4 ChatServerClient#receive_frame
0.00 0.00 0.00 0.00 5/47 Fixnum#+
0.00 0.00 0.00 0.00 1/2 DebugServer#receive_frame
0.00 0.00 0.00 0.00 10/29 String#[]
0.00 0.00 0.00 0.00 10/21 <Class::Range>#allocate
0.00 0.00 0.00 0.00 10/71 String#index
--------------------------------------------------------------------------------
100.00% 0.00% 0.28 0.00 0.00 0.28 5 FrameParser#receive_data
0.28 0.00 0.00 0.28 5/6 …Run Code Online (Sandbox Code Playgroud) 我用ruby-prof描述了我的基于事件机器的应用程序,发现了以下有趣内容:
5.28 0.00 5.28 0.00 4/4 Mutex#synchronize
90.72% 0.00% 5.28 0.00 5.28 0.00 4 Mutex#sleep
我认为ruby-prof只计算CPU滴答,因此我无法弄清楚为什么互斥锁睡眠会占用CPU时间.我假设它在内核级别上休眠而不计算光纤时间.有任何想法吗?更好的是,我希望Mutex#sleep能够释放对事件机器的控制权,因此它可以做其他事情.
在MySQL中,我通过执行调试如何更改记录
mysqlbinlog bin-88.log | grep“ record-id” --before = 2 --after = 2
我如何对mongo做类似的事情?
谢谢!
我正在运行rails 2.3.5应用程序,它支持我将mysql连接池连接到我的数据库.但我记得我读过我的杂种服务器是单线程的.连接池与单线程应用程序有什么关系?有没有办法多线程我的应用程序?
另外,连接池是否理解,ruby 1.8有"绿色"线程?
干杯!
ruby ×2
ruby-prof ×2
binlog ×1
connection ×1
eventmachine ×1
mongodb ×1
mutex ×1
mysql ×1
profiling ×1