2009-08-11 50 views
1

我在JavaScript中遇到了一些性能問題,我沒有太多的成功來檢測它。我嘗試過的一件事是使用Firebug的配置文件工具。它報告說,最重要的單一調用是dojo的日誌()。無用的是,它會報告壓縮腳本的行號,所以我不能說出是什麼原因導致了問題。但似乎有趣的是,配置文件報告中70%的行是針對dojo的log()調用的,因此累積起來,它必須花費大量的時間。有沒有辦法關閉dojo日誌記錄?dojo的性能(日誌記錄,彗星,滑塊)

唯一可見的日誌記錄是一個條目,每1.5秒顯示一次,並且這個條目似乎是彗星保持活躍狀態​​。我也在一個地方使用dojo的滑塊,但我沒有看到任何證據表明這會導致性能下降。

我應該使用其他什麼工具來嘗試識別JavaScript中的性能熱點?我的代碼在JavaScript中的部分並不是真的很大,所以如果它是真正導致問題的往返服務器,我不會感到驚訝,但是我不知道如何使用它。

回答

0

如果您使用的是Dojo 1.2或更高版本,您可以使用stripConsole = normal,同時讓您的構建自動去除它所做的所有日誌調用。如果您不使用構建系統,那麼這可能是您可以提高性能的首要任務。

一些鏈接,讓你開始:

http://docs.dojocampus.org/build/index

http://docs.dojocampus.org/quickstart/custom-builds

+0

我瀏覽過dojotoolkit.org,我沒有看到關於建築的任何信息。一切似乎都假設你會想要使用現成的版本。你可以給一個指向構建方向和下載什麼的指針? – PanCrit 2009-08-12 16:59:04

+0

我添加了鏈接。如果你從未看過這些文檔:它們有點慢,並且沒有最好的結構,但是那裏有很多非常好的信息。 – Marijn 2009-08-12 22:39:02

0

嘗試構建你的JavaScript也使用Dojo建設者。另外,請記住,最慢的調用是DOM調用。因此,確保當它可以移出外部時,您不會在循環內查詢DOM。

+0

很慢?比較什麼?上次我遇到這個問題是在Dojo 0.4中。目前的版本是1.3。 – 2009-08-14 07:58:15

+0

與非使用它相比,速度非常慢。當然,通過JavaScript直接生成節點和對象會比創建任何東西之前先讓Dojo先解析DOM更快。 – aehlke 2009-08-14 14:15:12

+0

要麼你有一個巨大的DOM,要麼你測量錯誤的東西。你有沒有試圖用Dojo讓Dojo郵件列表中的人感到驚訝? – 2009-08-16 03:50:58

1

您可能正在使用壓縮版本的Dojo。如果您將dojo.js更改爲dojo.js.uncompressed.js,則配置文件信息應該會顯示更準確的信息。

+0

我以爲我曾試過,並沒有得到任何更多的信息。我會再嘗試。 – PanCrit 2009-08-18 16:36:12