LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 724|回复: 5

停止使用firefly补丁过的qt

[复制链接]
发表于 2004-5-14 12:45:33 | 显示全部楼层 |阅读模式
真的导致我的KDE和qt程序变慢好多
包括opera!内存占用似乎也更大
无非就是牺牲一个粗体
算了
还是速度要紧

我打了补丁之后
opera第一次启动可以消耗接近40秒,第二次也要十多二十秒
不打补丁大概也就7秒,第二次2-3秒

opera static的版本也很快,但是static里面的qt是3.0.5的

现在KDE程序启动明显快了
还是这样好
发表于 2004-5-14 13:43:51 | 显示全部楼层
diff -uNrp qt-x11-free-3.3.0.orig/src/kernel/qfontdatabase_x11.cpp qt-x11-free-3.3.0/src/kernel/qfontdatabase_x11.cpp
--- qt-x11-free-3.3.0.orig/src/kernel/qfontdatabase_x11.cpp        2004-01-30 21:03:00.000000000 +0800
+++ qt-x11-free-3.3.0/src/kernel/qfontdatabase_x11.cpp        2004-02-11 12:23:21.000000000 +0800
@@ -711,6 +711,10 @@ static unsigned char encodingLoaded[numE

static void loadXlfds( const char *reqFamily, int encoding_id )
{
+    // Add by Firefly (firefly@firefly.idv.tw)
+    if (qt_has_xft)
+       return;
+
     QtFontFamily *fontFamily = reqFamily ? db->family( reqFamily ) : 0;

     // make sure we don't load twice
@@ -933,6 +937,20 @@ static void loadXft()
        QtFontEncoding *enc = size->encodingID( -1, 0, 0, 0, 0, TRUE );
        enc->pitch = ( spacing_value >= XFT_CHARCELL ? 'c' :
                       ( spacing_value >= XFT_MONO ? 'm' : 'p' ) );
+       // Add by Firefly (firefly@firefly.idv.tw)
+       if (weight_value <= XFT_WEIGHT_MEDIUM) {
+           QtFontStyle *fakeStyle;
+           styleKey.weight = getXftWeight(XFT_WEIGHT_BOLD);
+           fakeStyle = foundry->style(styleKey);
+           if ( !fakeStyle ) {
+               fakeStyle = foundry->style(styleKey, TRUE);
+               fakeStyle->smoothScalable = TRUE;
+               QtFontSize *fake_size = fakeStyle->pixelSize(SMOOTH_SCALABLE, TRUE);
+               QtFontEncoding *fake_enc = fake_size->encodingID(-1,0,0,0,0,TRUE
+);
+               fake_enc->pitch = enc->pitch;
+           }
+       }
     }

     XftFontSetDestroy (fonts);

就这几句代码会有那么大差距吗? 没有做过测试,最好谁能做个测试说明一下。
发表于 2004-5-14 14:16:21 | 显示全部楼层
我用了firefly的patch,系统很正常
但是我的确看见不止一次有人抱怨说加了patch之后,qt变慢,印象中主要在于使用了akito的某些patch,和firefly的无关(我只用了akito的一个打印的patch)。

总之,难说,我个人不能肯定到底是patch的问题还是软件打包的问题抑或是某个设置的问题。
发表于 2004-5-14 14:29:18 | 显示全部楼层
看看这段patch的代码,的确看不出来有什么会让人感觉明显变慢的地方。如果使用了xft,后面的代码就不执行了,应该是加快了速度的。
如果没有xft,后面那几句代码也不应该对系统的性能有什么大的影响,也没有什么大的循环或者复杂的分支检测。估计应该是其他的补丁的问题吧?
发表于 2004-5-14 15:02:08 | 显示全部楼层
opera启动慢的原因多半是字体的原因,换一个系统的字体试试。
我用tangti时就很慢,换了simsun就快多了
 楼主| 发表于 2004-5-14 15:48:33 | 显示全部楼层
返回系统自带的qt之后速度就恢复正常了
我使用了alaxwan和后面修正支付显示的qt都一样
导致系统变慢
而且似乎和自己的设置没有什么关系
因为即使是新建的用户,也就是默认设置也一样很慢

如果和字体有关
我猜想和有大量中文字体有关
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表