深井冰_01
深井冰_01
  • 发布:2014-05-27 16:59
  • 更新:2019-06-07 07:35
  • 阅读:48230

速度慢、响应卡顿、CPU高、占用内存高怎么办?

分类:HBuilder

===更新===
推荐在官网下载HBuilderX,这些问题都不存在了。

===历史内容===
HBuilder定位是极客用起来超爽的IDE,它的功能比文本编辑器更多,资源消耗也更多,但HBuilder可保证主流配置电脑流畅使用。
我们先说下HBuilder比文本编辑器慢的几个原因:

  1. HBuilder毕竟是IDE,功能比文本编辑器多,执行也自然会相对慢。
  2. HBuilder还自带了可调试控制台的浏览器,ide+浏览器都在这里,内存占用肯定也少不了。
  3. 插件有问题导致卡
    HBuilder的三方eclipse插件,如aptana的php、ftp插件,我们未对其做优化,有开发者反应性能不足。虽然这些插件都是开源的,但我们暂时没有精力完善他们,如果开发者基于这些开源项目做了改进或找到了更好的三方插件,请推荐给我们,我们会替换现有插件。
  4. HBuilder遇到某些情况的bug造成卡
    经过一年多的完善,目前这种情况已经比较少见了。如果大家遇到某些情况下敲代码卡,请一定反馈给我们。

不过在大多数情况下,机器性能好的话,HBuilder会让开发者感觉到难以在别处寻觅到的爽快。
我想好的开发者是宁愿把硬件配置调高,用更智能的工具做开发的。
我们的开发者中有一些创业团队,集体配置SSD高配电脑使用HBuilder开发,这种创业团队的效率极高。

然后讨论下如何让HBuilder更快的技巧,或者使用中避免不卡的注意事项。

  1. 如果有固态硬盘,把HBuilder和工程代码都放到SSD固态盘上。现在的电脑配置,cpu和内存都不是问题,往往的瓶颈是硬盘上;
  2. 同时打开的项目不要太多,把不用的项目点右键关闭,这样HBuilder就不扫描这些项目了,后台资源会释放不少
  3. 编辑大文档时慎用自动语法验证器,语法验证过程较易引发卡顿,可以在工具-选项-HBuilder-语法验证器设置里关闭,或者选择手动验证语法。
  4. 编辑大文档时,最好关闭大纲的实时同步功能。大文档的大纲结构会很多,每次移动光标实时计算大纲的位置会有点慢。可以在需要定位时再点一下同步。大纲实时同步在大纲视图的右上角的下拉菜单里。
  5. 清理无用的js框架和素材库。Js框架文件都比较大且结构复杂,素材库文件可能很多,扫描这些文件比较费时。不用的文件就移出项目。另如果不在意这些文件的扫描提示,也可以把文件移除扫描清单,这样就会更流畅点。对不用的文件或目录点右键-构建-移除构建目录。
  6. windows search index和dropxbox等工具也会监控磁盘,当项目文件目录被他们监控时,磁盘IO会比较高。在新建项目时会卡。
  7. 刚导入一个大工程时,或语法库升级时,会触发索引构建,此时cpu会比较高,并行做其他操作就会卡顿,但构建完毕后会恢复正常。
  8. 不用边看边改时,不要最小化那个浏览器,直接关掉它(ctrl+shift+p)。不然你改其他页面时,那个浏览器始终在运行,万一临时写的js有死循环,那HBuilder就挂掉了。而且HBuilder是相当于同时开了ide和浏览器,浏览器也是吃资源的。可能总体内存看着占了不少,但比较某些工具+浏览器合起来占的内存,其实也不多。
  9. 有些杀毒软件在监控HBuilder的exe和dll等文件,导致HBuilder卡顿,此时请把HBuilder的目录设成杀毒软件的白名单,禁止杀毒软件扫描。

简单说下IDE和文本编辑器的区别:
IDE有AST语法树,是专用于某种语言的优化开发工具,它能认识这种语言。
而文本编辑器是通用的,没有为特定的语言做优化,语法提示也是乱提示。
比如var a = document.getElementById("a1");。
在a后敲点出它的方法属性时,HBuilder要扫描a到底是什么,超链接?canvas?输入框?然后才会给予用户最准确的提示。
这种计算都需要在按下键盘的很短时间内完成,文本编辑器没有这些功能,它不会认识a,不管什么都提示一样的内容,所以提示速度更快。
而在所有的语言的AST构建中,js这种动态语言是最复杂的。一个function,可能根据参数不同返回多种类型,这样的function后面再点时,HBuilder都会分析function里的代码以确定返回类型。
AST不止用于语法提示,转到定义、重构变量都离不开它,这些功能也是文本编辑器缺失的。
所以在HBuilder里alt+左键转到定义非常好用,而文本编辑器就做不到了。

1 关注 分享
1***@qq.com

该文章目前已经被锁定, 无法添加新评论

DCloud_heavensoft

DCloud_heavensoft

回复 yushen999 :
单独开贴,没有详细细节说明,无法解决问题。比如说明开发什么语言的应用。webview调试器是chrome的功能,hx只是呼起它,它是独立进程。
2019-06-07 07:35
yushen999

yushen999

win10系统,16g内存,512固态硬盘,就只开HbuilderX和模拟器,然后开发一段时间后,HbuilderX就会奇卡无比,一打开webViewer调试器,就可能卡死。我能确定的是,这肯定不是内存和硬盘的问题,因为Hbuilder内存占用很低,只占用300MB而已。
目前还没找到好的解决方案,我的办法只有重启,但是这样很浪费时间,而且也很丢人。
求解决方案。
2019-06-07 01:16
乔军

乔军

为什么我都不卡
2019-03-10 19:55
6***@qq.com

6***@qq.com

反馈卡顿没人理。。。回复的还是用户。。。哎
2019-03-09 01:08
4111500976

4111500976

什么优化啊 打个字卡顿半天 。1.3.1最新版本
2018-12-13 15:18
阿姨不可以

阿姨不可以

回复 w***@163.com :
一打开HbuilderX CPU100% 内存占满 风扇呼呼转 这么垃圾的吗?
2018-11-03 08:08
w***@163.com

w***@163.com

webstorm只用了700M,这个有时候直接将我的8个G吃的干干净净
2018-03-19 19:55
gb

gb

占用内存的根本原因是

1. JAVA
2. Eclipse
3. WebStorm

而且卡顿。比webStorm都厉害

解决办法,
1. 就是自己编写IDE(用C++), (内存预计 200M以内绝对可以控制,预计应该在 150M以内)
2. HTML的预览放在 web浏览器去实现。
2017-05-18 10:39
菜鸡前端1

菜鸡前端1

有时候console.log() 没用 ,去游览器才行,弹窗有时候也没的,还以前我代码报错了,才会没的,但是我重新打开一遍又有
2017-05-10 15:49
轰炸大鱿鱼

轰炸大鱿鱼

console.log("divTemp------>"+dg
这是使用语法提示dg换成document.getelementbyid总是擦掉前面的+号
for(var j=0;j<document.getElementById("divTemp").childElementCount;j++){
这里面的document.getelementbyid索性会把j<都擦掉 循环bug找了我半天 所以怪我不用foreach咯
2016-11-30 16:20