青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

T9的空間

You will never walk alone!

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  69 隨筆 :: 0 文章 :: 28 評論 :: 0 Trackbacks
from: http://www.cnblogs.com/whjiang/articles/1387364.html

1. 盡可能不要創建global reference和global weak reference. 創建這兩類引用的JNI接口NewGlobalReference和NewGlobalWeakReference內部實現

有一個鎖。這個鎖使得在多處理器上的可擴展性非常差,因為各個線程都在等待這個鎖。所以盡量不要在native保存java 對象的引用,情愿在每次
JNI call時都帶點參數。當然,在native保持java對象的local reference是非常危險的,絕對不能那樣干。

2. 盡量不要使用GetPrimitiveArrayCritical/ReleasePrimitiveArrayCritical來pin住Java內存。JVM本身沒有提供任何只pin住一塊Java內存而不影
響GC的操作,所以這個操作是會阻止GC進行的。作為補償,ReleasePrimitiveArrayCritical會產生一次隱式的GC調用。這樣就可能出現在需要GC的時
候無法GC,而在不需要GC時進行無意義GC的情況。另外,這兩個操作的實現中在某些情況下也可能觸發鎖。解決方法:如果是小塊內存的話,情愿使
用Get<Type>ArrayRegion和Set<Type>ArrayRegion來在native和Java之間復制內存。

3. 在Java appliation中盡量不要創建phantom reference或者soft reference。這些reference會極大的影響GC。
我們先來談談JVM的GC。GC分為minor GC和full GC。Java內存分為young和old兩代。在young memory中,每個線程都有自己的內存分配塊(不和其它
線程共享),而old memory是由所有線程共享的。minor GC只對young memory作GC,而full GC對所有內存都做GC。minor GC是可以多線程并行進行的
,而full GC默認只能單線程執行。所以,一次full GC需要的時間可以是minor GC是10倍以上(可以用-verbose:gc觀察)。所以在一般應用中,
minor GC的次數應該是full GC的10倍左右是比較理想的。minor GC會將無法收集的對象移動到old memory中去。

minor GC不會對phantom reference和soft reference進行收集,只有full GC才會。這樣的問題就是大量的這類對象積聚起來,產生許多的內存復制。

這樣每次minor GC可能就基本上沒有釋放多少內存,使得full GC就會被頻繁觸發。可能出現minor GC和full GC次數1:1的情況,甚至全是full GC。

這樣,無論是性能還是可擴展性都是非常差的。

weak reference的影響好像小一些,但也應該盡量避免。

 

在JNI開發中,使用這3種reference的主要目的是保證native資源的釋放。因為java對象的finalize方法是不保證被調用的,所以必須用這些

reference來幫助實現native資源釋放。為了避免上述的問題,一種可行的方法是將native資源serialize成一塊內存,然后放到java對象中保存,從
而避免使用這些reference。

4. NIO是不錯的Java和native之間share memory的方法。但要注意它的性能。首先一定要設置對big endian還是little endian,防止JVM做額外的
endian轉換動作。其次是在啟動JVM時一定要加上-server選項,否則nio性能會非常差。在-server mode下,nio性能大概比java數組慢30%~50%.在-
client mode下,性能差1倍以上。

5. 盡量不要在JNI去new Java String對象。這個比在java層new慢很多。

6. 對java大對象(比方說數組),一定要仔細的tune他的大小。一般來說,小對象對GC比較友好。因為對象分配時先看每個線程自己的young memory
,如果找的到足夠大的內存的話,就分配。否則在old memory中分配。因為old memory是shared,所以可能有鎖開銷。而且old memory中的對象只有
full GC才能釋放它。所以對象比較小是比較好的。JVM的內存分配算法是為小對象優化過的,大量小對象的分配是很高效的,所以不用怕把大對象拆小。
在某些情況下,如果知道對象會活的很久的話,就讓它大一點,增加它直接分配在old memory中的概率。這樣可以節約young GC拷貝這個對象到old 

memory中的開銷。

posted on 2013-12-09 17:40 Torres 閱讀(622) 評論(0)  編輯 收藏 引用 所屬分類: Useful information

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲男女自偷自拍| 欧美激情成人在线| 亚洲一区二区三区精品在线观看| 国产精品综合色区在线观看| 久久久久久久尹人综合网亚洲| 亚洲福利在线视频| 久热综合在线亚洲精品| 午夜视频久久久| 午夜天堂精品久久久久| 亚洲欧美日韩一区| 久久精品官网| 欧美国产日韩精品| 国产精品99免费看| 亚洲精品视频啊美女在线直播| 午夜免费久久久久| 雨宫琴音一区二区在线| 日韩视频在线观看国产| 在线观看视频一区二区| 亚洲欧美综合网| 性色av一区二区怡红| 99国产欧美久久久精品| 在线亚洲一区| 红桃视频成人| 亚洲视频999| 欧美日韩国产不卡| 亚洲字幕在线观看| 亚洲欧美日韩国产综合| 午夜精品一区二区三区在线视 | 欧美黄色一区| 亚洲性感激情| 欧美国产日韩精品免费观看| 亚洲国产99| 亚洲综合成人婷婷小说| 久久综合久久美利坚合众国| 亚洲人成网站777色婷婷| 亚洲女人小视频在线观看| 蜜桃精品一区二区三区 | 欧美成人在线免费视频| 9l视频自拍蝌蚪9l视频成人| 欧美大秀在线观看| 亚洲电影免费在线| 欧美二区视频| 欧美激情aⅴ一区二区三区| 国产亚洲综合在线| 老巨人导航500精品| 欧美在线短视频| 亚洲电影一级黄| 日韩视频一区| 欧美精品在线极品| 亚洲欧美在线视频观看| 亚洲一区激情| 欧美激情亚洲综合一区| 久久精品一本| 亚洲美女中文字幕| 亚洲午夜电影网| 伊人久久大香线蕉av超碰演员| 久久爱www久久做| 久久激情综合| 中日韩视频在线观看| 亚洲一区二区三区精品动漫| 国产免费成人av| 欧美电影免费观看网站| 欧美高清在线一区二区| 亚洲欧美激情精品一区二区| 西西人体一区二区| 亚洲欧洲一区二区三区在线观看| 亚洲日本无吗高清不卡| 国产亚洲制服色| 一区二区三区|亚洲午夜| 国产一区二区精品在线观看| 亚洲韩国日本中文字幕| 国内久久婷婷综合| 亚洲图片欧美日产| 亚洲三级毛片| 免费看亚洲片| 亚洲动漫精品| 在线观看av不卡| 国产午夜久久久久| 亚洲精品1区2区| 亚洲精品在线电影| 欧美精品一区二区在线观看| 久久综合色播五月| 亚洲高清视频中文字幕| 欧美激情女人20p| 日韩亚洲精品电影| 久久激情婷婷| 在线精品国产欧美| 欧美理论在线播放| 亚洲老板91色精品久久| 免费在线播放第一区高清av| 久久综合给合| 久久久噜噜噜| 国产精品乱看| 亚洲欧美中文字幕| 欧美在线视频一区二区三区| 国产精品久久网| 久久影视三级福利片| 久久精品欧美日韩| 亚洲一区制服诱惑| 欧美 日韩 国产在线 | 久久综合五月天婷婷伊人| 欧美视频不卡中文| 在线观看不卡av| 亚洲精品在线观| 午夜亚洲福利| 亚洲——在线| 日韩视频在线观看| 国产一区二区久久久| 亚洲欧美日韩视频二区| 欧美在线高清| 韩日视频一区| 国产拍揄自揄精品视频麻豆| 浪潮色综合久久天堂| 亚洲免费在线视频| 亚洲第一综合天堂另类专| 亚洲国产精品久久久久| 国产美女精品一区二区三区| 欧美搞黄网站| 欧美成人一区在线| 麻豆成人在线播放| 亚洲综合国产| 欧美 日韩 国产 一区| 亚洲男人的天堂在线| 亚洲啪啪91| 亚洲人精品午夜在线观看| 久久久久高清| 亚洲综合导航| 一区二区三区久久久| 亚洲电影第1页| 激情另类综合| 精品成人久久| 中国日韩欧美久久久久久久久| 亚洲裸体俱乐部裸体舞表演av| 欧美一区二区三区日韩| 一本色道久久综合一区| 999在线观看精品免费不卡网站| 亚洲成人在线网站| 亚洲免费大片| 欧美一级久久| 欧美好骚综合网| 日韩亚洲欧美一区| 99精品福利视频| 亚洲小说春色综合另类电影| 午夜亚洲伦理| 欧美丝袜一区二区三区| 国产亚洲综合在线| 99re亚洲国产精品| 中国日韩欧美久久久久久久久| 99精品视频免费在线观看| 亚洲欧美在线免费| 欧美激情aaaa| 亚洲人成网站777色婷婷| 亚洲精品社区| 性欧美暴力猛交69hd| 欧美日韩蜜桃| 亚洲精品一区中文| 玖玖精品视频| 久久夜色精品国产亚洲aⅴ| 欧美三日本三级三级在线播放| 国产亚洲欧洲一区高清在线观看 | 亚洲精品激情| 欧美不卡高清| 亚洲天堂男人| 在线观看欧美成人| 久久久噜噜噜| 欧美不卡视频一区发布| 亚洲精品乱码久久久久久蜜桃91| 亚洲激情在线观看视频免费| 午夜国产一区| 国产一区二区三区的电影| 午夜精品久久久久久久99樱桃| 在线综合亚洲欧美在线视频| 国产精品国内视频| 久久在精品线影院精品国产| 亚洲欧美国产日韩天堂区| 欧美日韩网址| 欧美一级一区| 欧美激情导航| 久久人人精品| 国内自拍一区| 亚洲国产小视频| 欧美三级不卡| 欧美承认网站| 国产日韩欧美一区二区三区在线观看| 亚洲人体影院| 国产日韩精品一区二区| 午夜精品短视频| 欧美一区二区性| 亚洲字幕一区二区| 欧美不卡高清| 另类综合日韩欧美亚洲| 欧美成人黄色小视频| 亚洲欧美不卡| 欧美日韩一区二区在线| 亚洲大片一区二区三区| 亚洲自拍偷拍视频| 欧美成人69av| 91久久久久久国产精品| 加勒比av一区二区| 久久久久久久成人|