2012-08-13 91 views
7

有誰知道是否有研究表明,使用JavaScript庫(使用JavaScript庫而不是明顯的下載時間)與僅使用基本JavaScript的性能開銷?這些日子裏圖書館非常大,我很好奇。javascript庫的性能開銷

從我的計算機科學學位看來,它應該有增長n。 (換句話說是線性的)。

在計算機科學術語中,這不是威脅性的,但它是如何實際影響頁面加載時間和頁面性能的毫秒數?我知道CPU是一個問題,RAM等等。但是有沒有可以測試這些事情的測試?

我知道另一個因素是庫經常被優化,以便以較低優化的方式手動編寫同樣的東西,但庫也有開銷,並不是所有的功能都會被使用。

編輯: 我發現這似乎徹底回答我的問題,即使它開始了另一件事: When to use Vanilla JavaScript vs. jQuery?

「作爲評論是很快指出(我100%同意)上面的語句指的是基準代碼,一個'本地'JavaScript解決方案(假設它寫得很好)將勝過jQuery解決方案,它在幾乎所有情況下都能完成同樣的任務(我希望看到一個例子)。加快開發時間,這是一個重要的好處,我不想淡化它,它便於閱讀,易於遵循代碼,這比一些開發人員更容易有能力自己創造。

在我看來,答案取決於你試圖達到的目標。如果根據您對性能優勢的參考推測出來,那麼您的應用程序的速度超出了最佳速度,那麼每次調用$()時,使用jQuery都會引入開銷。如果你想提高可讀性,一致性,跨瀏覽器兼容性等,那麼當然有理由支持jQuery通過'本地'JavaScript。「

+0

這是一個這樣一個普遍的問題,我認爲它不能回答。每個庫的開銷是不同的,這取決於你在做什麼。 – 2012-08-13 14:18:13

+0

也許是這樣,但我希望有人知道任何研究測試不同類型的用途,試圖展示更大的圖片。我的直覺是,圖書館總是有額外的開銷,但開發和維護成本更低。 – Wolfe 2012-08-13 14:19:56

+0

我想你對使用庫如何影響性能的假設基本上是錯誤的,尤其是當你說「像庫也有開銷並且不是所有的功能都會被使用」的時候。如果一個庫提供了一個函數並且你使用了這個函數,那麼它不會比這個函數在你自己的源代碼中慢。如果庫也做其他事情,未使用的功能的存在不會讓你的代碼運行得更慢,儘管它可能會增加一些額外的K從服務器加載。 – 2012-08-13 14:22:40

回答

1

這是一個很好的問題!除了圖書館本身的下載時間之外,大多數框架並沒有做太多的工作,這意味着它們不會延遲頁面顯示或其他內容。

如果您需要經常觸發它,並且直接在樣式對象上操作速度更快,那麼JQuery的$ .css方法可以使元素的樣式變得更容易,可能會成爲性能瓶頸。

我的意見是更好地使用普通的JavaScript來做更多的事情,你必須獲得更高的性能。對於像Ajax請求,菜單淡入淡出等常規內容,我曾經使用過的所有框架的性能已經足夠,而且編碼本身也會加速。

+0

給你答案,因爲你在技術上是正確的:)雖然看到一些研究是很好的。 – Wolfe 2012-08-13 14:40:23

+1

http://www.amazon.com/Supercharged-JavaScript-Graphics-canvas-jQuery/dp/1449393632/ref=sr_1_1?ie=UTF8&qid=1344868973&sr=8-1&keywords=javascript+graphics這本書是這些研究的一部分你正在尋找 – philipp 2012-08-13 14:43:33

+0

非常感謝你:) – Wolfe 2012-08-13 14:45:27

0

這裏是研究基於性能與js庫和venilla js附加文本

http://www.learningjquery.com/2009/03/43439-reasons-to-use-append-correctly

,我可以說,使用venilla的JavaScript總是比與圖書館的幫助下進行一些更快。但如果你想節省時間用於開發的東西,如果你使用一些這將是很好圖書館,你很好

+0

我可否知道downvote的原因? – Shreedhar 2012-08-13 14:24:19

+2

關於vanilla JavaScript的說法總是比較快。如果你手動編寫所有的代碼,圖書館經常進行優化,你永遠都不會考慮這些優化,而且更多情況下,「X」的特製和經過測試的庫將比你自己手動執行的「X」更快, 。 – 2012-08-13 14:31:16

+0

@JamesMcLaughlin我不是總說我們應該寫venilla js,或者不要使用js庫嗎? – Shreedhar 2012-08-13 14:39:01

1

它取決於在圖書館n n。然而像jQuery這樣的圖書館可能並不重要:性能瓶頸可能不是jQuery,谷歌提供了CDN託管的jQuery,所以它甚至不需要影響頁面加載時間,以及jQuery爲您提供的易用性勝過輕微的性能影響。圖書館也可以使用不常見或困難的技術來提高性能,所以使用圖書館有時甚至可能比你自己寫的要快。真的沒有最終答案。

+0

我不喜歡谷歌CDN爭論的唯一情況是,人們似乎認爲它已經在每個網站上,並且它以這種方式實現,也爲同一個版本的相同的圖書館..它只是所有看起來很傻。我相信它確實爲一些人節省了時間,但你無法知道它是否是第一次加載,它絕對不會完全否定頁面加載時間。 – Wolfe 2012-08-13 14:29:16

1

雖然不是您的問題的直接答案,但我對這個問題的回答:"What are some empirical technical reasons not to use jQuery?"以及其他答案和評論可能對您的研究很有意思,因爲他們中的很多人都在談論使用和不使用JavaScript庫的性能問題,構架。我希望它有幫助。