2011-03-01 58 views
3

通常,如果我的代碼有任何性能問題,我會按照以下步驟來了解原因。無論編程語言如何,一些常見的性能問題是什麼?

  1. top命令查看CPU的使用率
  2. free命令查看內存使用
  3. 添加定時信息碼代碼
  4. 打印進度報表
  5. 理解和提高算法

如果你的代碼運行速度很慢,你會怎麼做。

+5

最合適的工具通常是一個分析器。 – 2011-03-01 15:21:02

+0

也許運行分析器? – 2011-03-01 15:21:29

+0

要回答問題的標題,最常見的性能問題與過度設計有關,尤其是OOP數據結構。 – 2011-03-01 16:23:46

回答

6

1)用探查,發現你的代碼
2)最慢的部分,一旦你發現了他們,想辦法來提高他們
第2步是最困難的。您可能需要一些小的更改或重寫所有內容

1

嗯,是的,配置文件,但不要使用任何舊的配置文件。

您需要查看堆棧中很多時間的代碼行,因爲通過優化它們可以節省多少成本。

找到他們,你應該使用一個分析器,

  • 需要掛鐘時棧樣本(I/O以及CPU時間期間),
  • 當你想他們(當它是是緩慢的,不是所有的時間),由行代碼(不只是由函數/方法)
  • 包含線的樣品的百分比(不計,而不是自時間,而不是平均時間
  • 和報告 - 百分)。

好的是Zoom

另一個非常簡單的方法是random-pausing

+0

這真的是downvote時間! – BlackBear 2011-03-01 15:41:10

+0

@BlackBear:這是驚人的[根深蒂固的混亂](http://stackoverflow.com/questions/4387895/if-profiler-is-not-the-answer-what-other-choices-do-we-have/4390868 #4390868)有關於這個問題。另外[this](http://stackoverflow.com/questions/1777556/alternatives-to-gprof/1779343#1779343)。 – 2011-03-01 15:47:34

+0

對不起,我的意思是關於隨機暫停的回答。我同意,關於分析器的問題找到了一個好問題。 – BlackBear 2011-03-01 15:50:34

相關問題