KDE 4.11和4.12的内存优化

右京样一 | 2013/08/11

不知道诸君对KDE的内存占用怎么看,但这似乎是KDE经受批评较多之处。最近一位开发者 sergio martins 在KDE的官方网志(点此进入原文)中提到了KDE 4.11和4.12对内存占用的一些优化(据他本人说最初是去买内存,结果商店关门了,只好通过优化来解决 -_-)。KDE 4.11发布在即,很快就可以体验到这些功能了。

具体的优化项目包括:

  • maildir资源在一个导入大文件时可能会占用1~2GB内存,现已修正。
  • 修正了一个mixedmaildir也能占用1~2GB内存的Bug——不过前提似乎是您得像Martin Steigerwald提供的文件夹那样有七万七千封电邮。
  • akonadiserver能够清除不需要的请求缓存,能节省65MB。
  • 原先如果使用Kontact的摘要视图的话,日历数据会被复制为5份,现已修正。
  • 修正KOrganizer在某些情况下内存占用会暴涨的Bug。
  • 修正KAlarm不释放对话框造成内存泄露的Bug。
  • Mysql内存占用减少了大约25MB(将在4.12时引入)。
  • Dan Vratil 和 Vishesh Handa 还在继续优化nepomuk和akonadi……

看起来里面很多优化只在数据量很大的情况下才有明显效果。不过内存这东西,在不影响效能的情况下能少用一点是一点,而且修正内存泄漏也是好事。

PS:好吧……我其实主要是觉得ikde太旱了来浇浇地。

9 FEEDBACKS

  1. 默认设置的 kde 内存占用的确比较大,不过在关闭 nepomuk 和 akonadi 这两个吃货之后,kde 的内存占用还算乐观,我的 3G 内存的机器开机占用也就 310M 左右。 我的 arch 打开 rekonq 时,会产生很多 kio_http 进程,CPU 内存都爆涨,不知是什么原因。

    • 可惜nepomuk我已经割舍不掉了……按内容搜索太强大。

      • 我觉得默认不应该打开 nepomuk 和 akonadi 这两个普通用户用不着的服务,许多抱怨 kde 运行慢的人往往是被这两货给坑的,而真正有需要的人应该知道怎么开启使用它们。还有 kde 的托盘通知服务,理念是好的,只是优化还不够,比如解压大文件,解压进程已经开始了,托盘通知愣是延迟了半天才转圈,不知道的人还以为解压没有启动…

      • 它的设计是瞬间结束的任务是不显示通知的,跑了一段时间的才会显示进度

  2. 反正有了chromium之后,这些都是毛毛雨了~现在kde组件里面最占内存的是kontact, 然后是mysql。。。

  3. tmk

    这些程序基本都不用。 以前感觉影响最大的是Okular在某些时候会内存消耗暴涨到上G。 不过把内存升到16G后再也不用时时盯着任务管理器了。

  4. Boild

    不装KDEPIM,一向禁用nepomuk和akonadi,这些优化好像对我意义不大啊……我这里的情况(64位Arch Linux)是在没有任何nepomuk、akonadi以及mysqld进程的情况下,kde依然要占用至少350MB内存(nouveau开源显卡驱动),如果用nvidia闭源驱动,开机内存占用有450MB。稍微跑点大程序的话感觉最近2G RAM越来越不够生活了。

  5. dyadin

    @csslayer 我想问,你名字代表cs slayer还是css layer?

    nepomuk 太吃内存了。时不时用个虚拟机,要用了这货基本会死机,chrome也吃的够厉害,开了虚拟机chrome都不敢打开太多页面要不也死机,&&&我没交换分区

  6. stecue

    4.11的virtuoso-t在我这里会无上限的占用内存,目视到6GB也不停止。我不得不专门用个脚本监视。关了这货kmail又会抱怨nepomuk没有开启。有什么办法让kmail不依赖它么?

Leave a Reply

Your email address will not be published. Required fields are marked *

Note: Commenter is allowed to use '@User+blank' to automatically notify your reply to other commenter. e.g, if ABC is one of commenter of this post, then write '@ABC '(exclude ') will automatically send your comment to ABC. Using '@all ' to notify all previous commenters. Be sure that the value of User should exactly match with commenter's name (case sensitive).