![](/img/trans.png)
[英]Javascript prototype extend base-class unable to access base-class properties/methods from prototype class
[英]Is the size of a JavaScript object affected by the number of methods in the (GWT) base-class?
我目前正在設計一些最終將在GWT中使用的API,並且我想知道在使用GWT編譯Java代碼之后,Java類中方法的數量是否會影響JavaScript中單個Object實例的大小。
換句話說,如果我有一個包含200個方法的抽象基類,然后覆蓋其中2個方法的子類,那么將為應用程序支付這200個方法的“成本”(內存使用)一次,還是為每個方法支付一次子類實例 ?
在Java中,方法的數量不會影響Object的大小,但是我不知道這在JavaScript中是如何工作的。
“ 200”數字來自於嘗試解決GWT中缺少“反射”的問題,但是即使有辦法獲得“假反射”,我仍然會對答案感興趣。
對於此類問題,Stackoverflow上沒有比您自己的實驗更好的答案:
編寫一個包含200個方法的類,然后編寫一個對其進行子類化並覆蓋2個方法的類。 比較JS代碼大小以獲得基本概念(盡管這與實例大小不同)。 使用編譯報告可以更好地理解。 然后嘗試使用樣式PRETTY或Detailed進行編譯,在編輯器中打開結果,並驗證生成的代碼是否重用方法。 (可以肯定的是,也可以在混淆模式下嘗試)。
或者,實例化許多對象,並檢查內存使用情況(多個瀏覽器提供工具,例如https://developers.google.com/chrome-developer-tools/docs/javascript-memory-profiling )
通常,請確保您的方法確實得到了調用-否則,編譯器將對其進行優化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.