- 积分
- 568
- 最后登录
- 2024-4-19
- 精华
- 0
- 阅读权限
- 40
- 主题
- 105
- UID
- 160098
- 帖子
- 1346
- PB币
- 2786
- 威望
- 5
- 贡献
- 0
- 技术
- 2
- 活跃
- 2346
- UID
- 160098
- 帖子
- 1346
- PB币
- 2786
- 贡献
- 0
- 技术
- 2
- 活跃
- 2346
|
英文字符都是1个字节一个字母,比如要显示10个英文字母,那就能直接算出是10个字符。而中文编码一个字符有可能是1~3个字节,还有可能中英文混排,同样显示10个中文,要一个个数过去之后才能知道占多少字节。
windows每次操作,都要对要显示的菜单到语言包中进行中文的查找,然后对找到的中文进行重新计算,排版,渲染,中文的排版也比英文复杂了不少,中文字形因为比英文多太多,计算显示宽高时也复杂很多,有时候有的软件英文菜单显示正常而中文菜单就撑出对话框或者砍头砍脚就是这个原因。
而且字体渲染时,英文就26个字母,可以预先缓存渲染到一张图片里,就不会再更新了。而中文字数太多,碰到没有渲染的字体时,需要重新从字体文件里读取字形,根据字号再去实时渲染。尤其现在都是矢量字体,需要大量的数学计算,最后整个中文字体缓存会很大,而且需要频繁的插入,查找等操作。
总之中文版的所有操作,肯定都要比英文版多很多步骤,哪怕CPU再快也需要一定时间,这就是慢的原因。
|
|