發表文章

目前顯示的是 7月, 2019的文章

Java OpenJDK + OpenJ9 加快啟動時間 speed up java startup time

OpenJ9是另一種JVM implementation 據說效能比HotSpot好 確定的是memory用量較低,CPU效能似乎看跑的程式 (平均HotSpot好像比較好) 啟動速度較快,可以用 -Xshareclasses 打開cache功能 (AOT+JIT),下次Java就不用重新compile class (第一次會比較慢) 我用的是AdoptOpenJDK,最新版本JDK (左邊版本選最下面的,右邊選OpenJ9) https://adoptopenjdk.net/releases.html?jvmVariant=openj9 一般人使用選擇後面沒寫LargeHeap的版本就夠了,那個是給需要大記憶體的程式用 因為電腦加記憶體到16G了,使用上充足就想提高效能 同樣程式編譯成64bit會比32bit記憶體用量多,效能較高,比較HotSpot 32/64bit用量,印象中Chatty多了30%以上 HotSpot 32bit 換到 OpenJ9 64bit,記憶體用量差不多 ,就知道OpenJ9很會省了 啟動Chatty大概4秒吧,以前HotSpot要幾秒不知道,久到我其他程式都開完還沒起來 command line option https://www.eclipse.org/openj9/docs/cmdline_specifying/ 目前我用的參數 (非開發/debug用,只是拿來跑程式,把所有看到會提高效能都開了) -Dcom.ibm.tools.attach.enable=no -Xaggressive -Xnolinenumbers -Xshareclasses -XX:SharedCacheHardLimit1G 加參數的方法可參考 https://craftwarblog.blogspot.com/2017/10/windows-jarjvm-run-jar-file-with-jvm.html https://www.eclipse.org/openj9/docs/xshareclasses/ -Xshareclasses:cacheDir=<directory> C:\Documents and Settings\<username>\Local Setti

記憶體超頻知識整理, memory overclock

超頻可以提高效能,缺點增加耗電和熱量,減少元件壽命,較不穩定 超頻需要看記憶體,主機板,記憶體控制器 (現在都整合在CPU內) 原生記憶體是指設計時就以JEDEC的標準來做,如果主機板或CPU沒有原生支援該頻率,還是算超頻使用 (不支援的部分算超頻) JEDEC standard DDR4 module 超頻記憶體指的是memory chip非設計給該頻率使用 透過某些方法讓,記憶體以更高頻率運作,應該是透過挑選記憶體顆粒和PCB設計吧,所以穩定性較低,為了提高穩定性通常會提高電壓 同製程技術下,頻率越高產生越多熱量,電壓越低熱量越少 (不同家的無法直接比較) 同時脈CL數低的延遲比較低,速度比較快 耗電量可以參考這個說明 http://www.tpuser.idv.tw/wp/?p=1859 記憶體single rank和dual rank和是不是雙面無關,一般dual rank都做成雙面? ex: 8G的記憶體可能會標示成 1RxN, 2RxN 2R就是dual rank,N我忘記是什麼了,可能是幾個顆粒? 或是bit width? 如果想知道rank是什麼,可以看 https://en.wikipedia.org/wiki/Memory_rank single rank基本上比dual rank好 (除了可能和主機板不相容,大容量可能抓不到) 少一個控制器,速度稍快,耗電量較低,訊號比較不會干擾,超頻空間比較大 主機板也有限制支援的最大rank數 (不是看插幾條記憶體) 目前除了伺服器用DDR4 3200 16G單條都是 2R,應該是成本考量密度沒做上去