下面由phpstorm教程欄目給大家介紹mac下phpstorm開啟過多項目,導致異常卡頓到奔潰的解決方法,希望對需要的朋友有所幫助!
前言:筆者今天困擾于PhpStorm導致應用程序內存不足,速度像蝸牛一樣慢,排熱扇像拖拉機一樣瘋狂運轉,最后直接跳出超出使用內存750(默認是128m-750m) 彈窗。通過Mac自帶的活動監視器發現mds_stores進程占用6.5G(一開始以為是筆者的docker容器和鏡像,后面說明)com.docker.supervisor 占用內存2G(筆者使用docker環境開發)PhpStorm 占用6.2G一臉懵逼,我的Mac內存才8G,難怪Mac罷工,要是我我也罷工。哈哈筆者再一步步通過調優,最后發現原因,還是將三次調優過程分享一下二(2)為解決方案
一、修改PhpStorm的配置文件
vi ?/Applications/PhpStorm.app/Contents/bin/phpstorm.vmoptions?
-Xms512m
-Xmx2048m
-XX:MaxPermSize=350m
立即學習“PHP免費學習筆記(深入)”;
-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的索引,不過就是會失去代碼提示這個功能,但是其實是可以接受的。在后續的開發,筆者將持續觀察是否長時間的起到作用吧~