字体缓存消失疯狂

感谢有关周一的大量电子邮件由损坏的字体缓存导致的pieceton登录延迟,我想我很清楚发生了什么事。

我知道的一件事是,不仅仅是我——很多人遇到这个问题,在某些情况下,它几乎是残废的。一位读者报告发现超过1千兆字节中的“fontTableSannex”文件/系统/库/缓存/;以及登录延迟的间歇时间,设计师Cameron Moll报告他的登录时间已经增长到14分钟.

这是,显然,Mac OS X 10.3中的错误。明确地,这是ATS框架的1.8.5错误倒置。回想一下,从周一起,“ATS”代表“苹果式解决方案”(尽管有几位读者附议了我的怀疑,认为它以前是“苹果式服务”的意思);无论如何,关于这个讨论,您只需要知道ATS是处理字体的Mac OS X子系统)。

版本1.8.5作为Mac OS X103.6更新,其中提到了在那个版本中出现的几个与字体相关的错误。所以我的猜测是bug-“fontTableSannex”缓存无约束增长,导致严重的逻辑错误-作为10.3.6中ts.framework的一个错误修复的副作用引入。

10.3.6于10月发布,这使我怀疑这就是引入bug的时候。它不是一只虫子繁荣,您被击中并登录到您的帐户突然需要一段时间或更长时间。这些字体缓存不断增长,但他们总是慢慢地排成一排,因此,副作用往往会潜入你的身体。伊贝根怀疑12月左右出了什么问题;到二月,我非常恼火。

ATS.framework在10.3.7或10.3.8中均未发生变化;版本1.8.5仍然是最新版本,因此,错误仍然存在。

大多数用户没有受到这个错误的影响,或者,如果是这样的话,情况并不严重。我相信,但无法证明,原因是只有在安装了PostScriptfonts的情况下才会触发bug,或者,某些PostScript字体的种类。

我相信这是因为:

  1. 每个写信给我说他们也被这个错误击中的人都报告说至少安装了几个PostScript字体。

  2. 我认识的所有人都没有被击中-没有大字体缓存文件,登录帐户时没有延迟-没有安装PostScript字体。

组2包括所有使用苹果系统附带的常用字体集运行的人-仅苹果提供TrueType字体。

我很有兴趣听到任何人反驳这两种假设;即如果你被这个错误击中,但没有安装PostScript字体,或者,如果系统的字体文件夹中安装了许多PostScript字体,但没有被炸弹击中。

这并不是说PostScript字体有什么问题。或者,如果你被击中了,有任何损坏或损坏的东西你的PostScript字体文件。这是Mac OS X中的一个bug,简单明了。

我对10.3.6版本中引入的bug的怀疑进一步得到了Arton Ragsdale的调查工作的支持,谁通过电子邮件向我发送了这份报告:

atsserver和字体缓存的问题是新的和旧的。在osx的整个生命周期中,我经历了许多可变的问题。尤其是10.3,这很容易通过删除fontcache来解决(随着各种问题的重复出现)。我知道你一直认为这是胡说八道,但我可以向你保证不是这样的,一般情况下会好一些。这似乎解决了大部分问题。

但是,10.3.6更新,它带来了一个新版本的ts.framework,将版本1.8.4更新为1.8.5。本次更新的主要变化,还有待解决,扫描三个字体文件夹中的每一个字体的行为(/系统/库/字体//库/字体/,和~/library/字体/)不管它们是否被激活。如果你有大量的字体,这需要非常长的时间。

我安装的电脑大约有500种字体,其中很多都很旧,有各种类型,我认为这增加了问题。我得出这个结论的方法和你提到的方法类似,登录时使用ssh访问计算机。但除此之外,图辛顶部把问题缩小到服务器上,我用过FSU用法找出哪些进程正在访问哪些文件。我发现TSServer正在访问计算机上的每个字体。

我的解决办法是你的一个大麻烦,i将ats.framework隐藏在/系统/library/frameworks/applicationservices.framework/versions/a/frameworks/ats.framework使用10.3.5版本的旧版本。不是最优雅的解决方案,但它已经顺利地在30个G5上运行,装载了各种各样的图形应用程序,我可以把窃贼放在他们所属的地方,在“字体”文件夹中。它与10.3.6以后发布的每一个版本都有效,但我不推荐任何一个不使用很多字体的人使用它。

阿顿的调查很彻底,但他也正确的指出,iabsolutionly不能认可他用Mac OS X 10.3.5的1.8.4版本替换ats.framework 1.8.5版本的解决方案。它对他有效,这证明了在1.8.5版中发现这些问题是一个bug;这并不意味着用以前的操作系统更新版本替换操作系统组件是一个明智的想法。

我的忠告

最好是等着苹果来解决这个问题,我相信他们会愿意Mac OS X 10.3.9(和,人们希望,也在10.4)。一方面,这是一个严重的错误。另一方面,尽管这并没有影响到每个人,它正在打击大量用户,尤其是设计师。设计师是受影响最严重的人口统计学者,因为他们几乎总是有大量的PostScript字体被安装(反之,非设计人员不太可能安装任何PostScript字体)。

我没有第一手的知识A 10.3.9版本,但传言工厂说这是迫在眉睫。包括在向开发人员发布的最新版本的租赁说明中,据报道麦克鲁莫斯公司,这个项目是:

  • 更新字体管理

根据一个叫思考秘密

Mac OS X 10.3.9将在发布后提供数十个其他修复和改进,包括在多种字体的系统上提高启动时间,FireWire音频性能修复,更新的内核,从睡眠中醒来时的改进,还有更多。

(我相信哪里认为秘密说“启动”,它们的意思是“登录”,尽管这些缓存问题可能会影响启动和登录时间。)

与此同时,我相信这个bug可以通过监视字体缓存的大小来手动管理。如果“fontTableSannex”文件太大,或者如果你登录的时间太长,清空字体缓存并重新启动。

4月17日更新103.9被淘汰,解决办法是:

解决了这样一个问题:如果安装了大量PostScript字体,Mac OS x10.3.6到10.3.8中的启动时间可能会延长。


  1. /系统/library/frameworks/applicationservices.framework/versions/a/frameworks/ats.framework γ

  2. 如果你喜欢苹果公司发行说明中委婉的说法,可以用“问题”代替“bug”。γ

  3. Jonathan Rentzsch的”FSU用法介绍“是对FSU用法工具。γ