|
1
6
测试一下;我通过重用获得了双倍的性能(在发行版中,重用=3000毫秒,重新创建=4900毫秒)
|
|
|
2
2
字体实现IDisposable-完成后应确保调用Dispose。 它是一个非托管资源,因此操作系统最终可能会耗尽资源来为您提供更多的对象。 检查taskmanager中的gdi句柄计数,看它是否持续增加。 |
|
|
3
2
重用几乎总是比按需快,但重用或缓存字体对象的能力可能有所不同。 如果要重用字体对象并将不同的字体对象与每个控件关联,则会增加超出gdi句柄限制的可能性。这将损害给定用户使用的所有应用程序。 理想情况下,您应该在应用程序/流程级别缓存字体对象,并且只缓存必要的最小设置(最多可能是十几个)。此外,缓存一个小的共享字体集和其他gdi对象允许您更好地处理一些棘手的消息,如wm_settingchange。在示例中,您正在修改默认值,当用户更改方案或Windows中的默认显示字体时,可能会遇到绘图错误。在wm_设置更改期间,您将考虑释放缓存的副本,并初始化或准备新的字体对象集。 WM_SETTINGCHANGE (Windows) @ MSDN 如果您需要有数百种不同的字体(或其他GDI对象)可用,则不应缓存字体,只应根据需要创建所需的内容。这对性能不友好,但它将帮助您的应用程序与用户可能打开的其他应用程序共存。持有数百个gdi对象将大大增加用户遇到gdi句柄限制的可能性。但是,基于引用计数的缓存可能会在这里提供一个最适合您的折衷方案,只保留最常用变体的硬拷贝。 最后,正如MattBreckon所提到的,对所有可用的GDI对象使用IDisposable。这将帮助您避免GDI处理泄漏。 |
|
|
vatsal chauhan · 即使在字体预加载时,文本加载也很慢 1 年前 |
|
|
Marcin Szwarc · CSS字体家族中的字体是如何替换的 1 年前 |
|
Andrew · 标题是粗体,但标签不是。该怎么办? 2 年前 |
|
|
Francis · 显示变量中的fontello字符 2 年前 |
|
Bethany · 正斜杠导致自定义字体向后书写 2 年前 |