<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] # 配置文件位置 **默認** 默認的IDEA JVM參數配置較低,其中配置存放在`/Applications/IntelliJ IDEA CE.app/Contents/bin/idea.vmoptions`文件中. IntelliJ IDEA 版本升級時,除非用戶自行控制,默認情況IDEA會將全局的`idea.vmoptions`文件覆蓋,因此,選擇用戶的`idea.vmoptions`文件可避免升級配置覆蓋。 **修改`Info.plist`文件** 定位`Info.plist`文件 該文件存放在`/Applications/IntelliJ IDEA CE.app/Contents`目錄下 打開`Info.plist`,其中存在一個 key 元素內容為`VMOptions`的設置,如下所示: ~~~ <key>VMOptions</key> <string>-Dfile.encoding=UTF-8 -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Xverify:none -XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log -XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof -Xbootclasspath/a:../lib/boot.jar</string> ~~~ **修改用戶`idea.vmoptions`文件** 切換當前用戶的IDEA 配置目錄 通過命令行,cd到`~/Library/Preferences/IntelliJIdeaXX/`目錄下,如本人的機器路徑: ~~~ /Users/Mercy/Library/Preferences/IdeaIC2017.1 ~~~ **新建或更新用戶`idea.vmoptions`文件** 將新建或者待更新的`idea.vmoptions`文件,更新以下JVM 配置項 ~~~ -server -XX:+UseG1GC -XX:+UseNUMA -Xms512m -Xmn512m -Xmx8g -XX:MaxMetaspaceSize=512m -XX:ReservedCodeCacheSize=240m ~~~ # 設置JVM的啟動參數 idea64.exe文件同目錄的`idea64.exe.vmoptions` 或者 help下面的`Edit Custom VM Options...` ~~~ -XX:ReservedCodeCacheSize=1024m //增加codeCache容量 -XX:+UseCodeCacheFlushing //codeCache回收 ~~~ 重啟idea發現cpu依舊占用嚴重,那就說明JVM在啟動初期解釋字節碼進行執行,當方法執行次數達到指定閾值后,觸發JIT把字節碼編譯成機器碼,這個過程消耗CPU資源比較嚴重,我直接把所有代碼編譯成機器碼 ~~~ -Xcomp? ?//可以使jvm運行在純編譯模式下,所有方法在第一次被調用的時候就會被編譯成機器代碼 ~~~ 這樣設置有一個弊端,第一次啟動特別慢,之后就特別流暢, 網上的參數 ~~~ -Xms6G -Xmx6G -XX:ReservedCodeCacheSize=240m -XX:+UseCompressedOops -Dfile.encoding=UTF-8 -XX:+UseG1GC //使用G1 gc -XX:+UseNUMA? //優先使用速度較快的內存 -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Djdk.http.auth.tunneling.disabledSchemes="" -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Xverify:none -XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log -XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof -Dsun.awt.keepWorkingSetOnMinimize=true //讓IDEA最小化后阻止JVM對其進行修剪 ~~~ numa 是一個 CPU 的特性。SMP 架構下,CPU 的核是對稱,但是他們共享一條系統總線。所以 CPU 多了,總線就會成為瓶頸。在 NUMA 架構下,若干 CPU 組成一個組,組之間有點對點的通訊,相互獨立。啟動它可以提高性能。 NUMA 需要硬件,操作系統,JVM 同時啟用,才能啟用。Linux 可以用?[numactl](http://linux.die.net/man/8/numactl)?來配置 numa,JVM 通過-XX:+UseNUMA來啟用 ~~~ # custom IntelliJ IDEA VM options ##################JVM模式############################ # IDEA的JVM以Server模式啟動(新生代默認使用ParNew) -server ##################內存分配############################ # 堆初始值占用3G,意味著IDEA啟動即分配3G內存 -Xms3g # 堆最大值占用3G -Xmx3g # 強制JVM在啟動時申請到足夠的堆內存(否則IDEA啟動時堆初始大小不足3g) -XX:+AlwaysPreTouch # 年輕代與老年代比例為1:3(默認值是1:4),降低年輕代的回收頻率 -XX:NewRatio=3 # 棧幀大小為16m -Xss16m ##################老年代回收器############################ # 使用CMS老年代回收器 -XX:+UseConcMarkSweepGC # CMS的重新標記步驟:多線程一起執行 -XX:+CMSParallelRemarkEnabled # CMS的并發標記步驟:啟用4個線程并發標記(理論上越多越好,前提是CPU核心足夠多) -XX:ConcGCThreads=4 ##################JIT編譯器############################ # 代碼緩存,用于存放Just In Time編譯后的本地代碼,如果塞滿,JVM將只解釋執行,不再編譯native代碼。 -XX:ReservedCodeCacheSize=512m # 分層編譯,JIT編譯優化越來越好,IDEA運行時間越久越快 -XX:+TieredCompilation # 節省64位指針占用的空間,代價是JVM額外開銷 -XX:+UseCompressedOops # 增大軟引用在JVM中的存活時長(堆空閑空間越大越久) -XX:SoftRefLRUPolicyMSPerMB=50 -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Djsse.enableSNIExtension=false ~~~ # 查看內存的設置及使用情況 開啟設置中的`Show memory indicator` ![](https://img.kancloud.cn/c9/65/c965d9e581cfd148564444b9f7da2458_570x498.png) # 設置編譯和Maven的JVM內存 因為設置成了自動編譯,并且發現保存文件的時候CPU瞬間飆高,所以需要將編譯進程和Maven的堆值設置大一些,見下圖: `compiler->Build process heap size` 設置大一點 ![](https://img.kancloud.cn/ed/96/ed968c4822783c28fbe8e8b1c402550f_852x224.png) # 取消Error以外的代碼檢查 IntelliJ的代碼檢測功能非常強大,但同時也占用了一些資源,可以將默認的除 Error之外的其他級別的檢測都去掉,先做下面的篩選,然后逐個勾掉即可: ![](https://img.kancloud.cn/c5/d2/c5d20675a0959235dfe3579781af1cb4_851x368.png) # 其他方法 ## 更改啟動的JDK 更改啟動的JDK的方法在[JetBrains系列(IntelliJ IDEA、WebStorm等)中文輸入法無提示問題的解決](http://www.javatang.com/archives/2017/08/27/52101751.html)這篇文章里面有詳細的介紹,針對IntelliJ 2018.1來說,最后檢測下來最新版的`jbsdk8u152b1248.5`整體感覺還不錯,可以在[https://dl.bintray.com/jetbrains/intellij-jdk/](https://dl.bintray.com/jetbrains/intellij-jdk/)進行下載。 ## 清空緩存并重建索引 在做完上述設置之后,最好通過點擊`File -> Invalidate Caches / Restart...`菜單,然后點擊`Invalidate and Restart`按鈕清空并重建索引,然后重啟。再次啟動程序之后,會首先重建索引和緩存。 ## maven參數設置 ~~~ -Xms256m -Xmx2048m -XX:MaxMetaspaceSize=200m -XX:PermSize=128m -XX:MaxPermSize=512M ~~~ # 調優 ![](https://img.kancloud.cn/6c/8d/6c8da26b1cfaf1f83a573e9f37970949_1284x54.png) ~~~ jstat -gc 20918 ~~~ 查看YGC和FGC次數 還有一個很耗時的操作是字節碼驗證,去掉字節碼驗證的參數是`-Xverify:none`
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看