Mac下PhpStorm開啓過多項目,導致異常卡頓到奔潰的解決方案

前言:筆者今天困擾於PhpStorm導致應用程序內存不足,速度像蝸牛一樣慢,排熱扇像拖拉機一樣瘋狂運轉,最後直接跳出超出使用內存750(默認是128m-750m) 彈窗。

通過Mac自帶的活動監視器發現

  1. mds_stores進程佔用6.5G(一開始以爲是筆者的docker容器和鏡像,後面說明)
  2. com.docker.supervisor 佔用內存2G(筆者使用docker環境開發)
  3. PhpStorm 佔用6.2G

一臉懵逼,我的Mac內存才8G,難怪Mac罷工,要是我我也罷工。哈哈😂

筆者再一步步通過調優,最後發現原因,還是將三次調優過程分享一下

二(2)爲解決方案

一、修改PhpStorm的配置文件

vi  /Applications/PhpStorm.app/Contents/bin/phpstorm.vmoptions 

-Xms512m

-Xmx2048m

-XX:MaxPermSize=350m

-XX:ReservedCodeCacheSize=225m

-XX:+UseCompressedOops

修改後發現,的確是不會彈出使用內存750(默認是128m-750m) 彈窗,但是電腦速度一樣 so low!!!!!主要還是內存不足。

所以,這個方式適用於內存較大,想調優的同志了。

二、調優node_modules目錄(解決方案)

1、全局忽略node_modules目錄(項目中node_modules會消失不見,但其實還是存在,時時被忽略。可以本地運行,卻無法打包。)

操作很簡單,打開PhpStorm>>Preferences>>Editor>>File Types

 在Ignore files and folders選填項裏添加node_modules,記得用分號隔開,保存並重啓項目後我發現,之前佔用在6G左右的PhpStorm佔用只有1.5G左右 。隱藏node_modules後,node_modules組件內的代碼提示當然就沒有了,不過本地npm run dev還是正常運行

發現Mac整體安靜下來,不太鬧情緒。速度提上來了。但是筆者還是覺得難受,因爲如果打包準備要打包到線上的話,你會發現,打包不了會報錯,這適合本地開發暫時還未到上線程度的項目。

更優一步。

(解決方案)2、局部去除索引node_modules目錄(非忽略,在項目中還是可以發現node_modules目錄)

設置完成後再PhpStorm>>File>>invalidate Caches Restart清除緩存並重啓PhpStorm

三、mds_stores的釋放

之前就一直好奇mds_stores是哪個進程了。網上搜索發現“mds_stores”了這個是系統建立索引用的(有人說是升級到 macOS High Sierra 之後mds_stores卡頓次數更多),纔想起來最近Finder的搜索也有點不正常,搜不出東西來,升級之前就是這樣了。而索引支持Finder和Spotlight(Mac自帶工具)的搜索功能,當然咱們的代碼工具PhpStorm也是使用到索引(node_modules),這就是爲什麼第二步有起到作用!

我們現在要做的就是停止mds_stores進程

1、Terminal(終端)裏輸入命令:

sudo mdutil -a -i off

但這還不夠,還需要通過Mac自帶活動監控器手動殺死 mds_stores 進程。

2、再啓動:

sudo mdutil -a -i on

3、重啓
重啓PhpStorm

四、總結

由於node_modules體量較大,越大的項目,多開幾個。那麼PhpStorm就無法承載。第一步適用於內存較大,想調優的同志可以設置一下。第二步的操作是關鍵,第二步(2)操作node_modules使得索引壓力大幅度減少,每次開啓項目,就不會去主動建立node_modules的索引,不過就是會失去代碼提示這個功能,但是其實是可以接受的。在後續的開發,筆者將持續觀察是否長時間的起到作用吧~

還發現了一個不錯的博文。macOS 的 mds_stores 導致應用程序內存不足的故障解決記錄 大家可以參考一下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章