threejs 影子属性_影子场vs.属性访问器接口第2轮
threejs 影子屬性
如果你們還沒有注意到Dirk Lemmerman和我之間的(輕松) 攤牌 ,那么讓我快速提及一下我們是如何做到這一點(diǎn)的。 首先,Dirk創(chuàng)建了JavaFX技巧23:“ 為屬性保存內(nèi)存陰影字段 ”,以幫助應(yīng)用程序開發(fā)人員在使用JavaFX屬性時(shí)節(jié)省內(nèi)存。 知道您可以在不需要使用JavaFX Property對象的情況下節(jié)省內(nèi)存,這一點(diǎn)令人印象深刻。
在查看代碼時(shí),我不禁注意到使我瘋狂的樣板代碼,因此我決定制作一個(gè)簡單的API,該API還考慮了Dirk示例中使用的有趣的Shadow Fields模式。 我創(chuàng)建的API(也稱為屬性訪問器接口)包含默認(rèn)方法,這些方法可以使開發(fā)人員輕松實(shí)現(xiàn)接口,而無需擴(kuò)展抽象類來避免Java的單一繼承規(guī)則。 要查看Property Accessor界面代碼,我在此處進(jìn)行博客介紹。 令我驚訝的是,Dirk創(chuàng)建了另一個(gè)博客條目來對這三種方法進(jìn)行基準(zhǔn)測試。 如果您跟上所有樂趣,則以下是到目前為止博客文章的時(shí)間順序。
引入陰影場的概念
我試圖節(jié)省內(nèi)存并減少樣板代碼。
一個(gè)基準(zhǔn)應(yīng)用程序,用于測試具有屬性和字段原始數(shù)據(jù)類型的對象的三種方法。
重新訪問屬性訪問器接口以通過集中值映射來減少內(nèi)存使用。
事實(shí)證明,根據(jù)上面的文章#3,即使膨脹的對象具有已實(shí)例化的屬性字段,我的實(shí)現(xiàn)也是三個(gè)實(shí)例中最差的。 因?yàn)槲掖掖颐γM(jìn)入事物,直到上述Dirk的帖子#3才知道這個(gè)問題。 好吧,我還沒有準(zhǔn)備好揮舞白旗 ,除了袖子,還有一些技巧。
接下來,您將看到我為減少Property Accessor接口策略的內(nèi)存使用所做的工作。 要查看代碼更改,請?jiān)诖颂幍腉ithub上查看代碼。 我所做的唯一更改是集中了包含值的Map。 如您所見,與上面Dirk的帖子#3相比,內(nèi)存要低得多。 但是,盡管我沒有使用陰影字段擊敗Dirk的實(shí)現(xiàn),但是我的表現(xiàn)比標(biāo)準(zhǔn)對象方法要好一些。
使用集中式映射的更新的Property Accessor Interface實(shí)現(xiàn)。
結(jié)論
盡管我只是通過從每個(gè)對象中刪除哈希映射并將所有值集中到單個(gè)映射中進(jìn)行了簡單的更改,但是Property Accessor接口仍然沒有像影子字段技術(shù)那樣減少內(nèi)存。 我可能會(huì)探索其他技術(shù),例如弱引用或研究內(nèi)存映射文件。 我懷疑我是否可以進(jìn)一步減少工作量,但是我相信相對較小的應(yīng)用程序可以使用Property Accessor界面快速構(gòu)建應(yīng)用程序。 他們(開發(fā)人員)可以使用適當(dāng)?shù)姆猪搧肀苊獬霈F(xiàn)大量列表。 最后一個(gè)想法是創(chuàng)建一個(gè)甚至可以減少樣板代碼的注釋。
讓我知道你的想法嗎? 有什么建議?
翻譯自: https://www.javacodegeeks.com/2016/04/shadow-fields-vs-property-accessor-interface-round-2.html
threejs 影子屬性
總結(jié)
以上是生活随笔為你收集整理的threejs 影子属性_影子场vs.属性访问器接口第2轮的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 访问工作组内电脑需要权限(如何设置工作组
- 下一篇: jdk 9和jdk8_了解有关JDK9紧