簡要介紹一下webkit中有AtomicString
創建目的
爲了解決字符的超快速比較以及節省內存而生
應用場景
AtomicString大部分應用在保存腳本關鍵字,或者出現頻率很高的字符串,例如HTML的各種tag,它們出現很頻繁,用AtomicString保存對後期的比較會非常快(對比指針就行)。
共享內存
同樣的字符串內容,不同的AtomicString實例會使用同樣一份字符串內存,
例如下面代碼:
AtomicString test2("123");
AtomicString test3("123");
test3不需要額外爲保存“123”而開闢內存,內部會自動和test2共享一份內存。
缺點
1.因內部需要一系列數據結構處理,實例創建比較耗時,比普通的String創建速度慢;
2. 跨線程使用須謹慎,因爲不同線程都自行維護一份AtomicString的數據結構,所以同樣內容的AtomicString在不同線程並非共享同一份內存。不同線程的AtomicString實例比較可能會錯誤,例如test2可能會不等於test3。不可多線程訪問同一個AtomicString.
本文結束。