FreeType与多进程

dhdahai 2012-08-04 03:47:47
最近碰到一个问题:

程序用多个进程组成,

每个进程都用到FreeType渲染字体,

这样导致每个进程都要加载字体文件,

最终程序占用内存过大。

有没有什么办法,多个进程共享一份字体文件,减少内存占用?

望各位提供点思路,谢谢!
...全文
208 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dhdahai 2012-08-08
  • 打赏
  • 举报
回复
谢谢Mr_dodo了

是我代码问题,这样做还是有效果的

省下来几M的空间

结贴,给分!
Perry118 2012-08-07
  • 打赏
  • 举报
回复
文件映射是虚拟内存呀。你试试呀。
dhdahai 2012-08-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

用文件映射应该可以吧?

freetype初始化的时候,用FT_New_Memory_Face
[/Quote]

谢谢回复!

这样的话是不是要加载整个字体文件?

FT_New_Face好像没有加载整个字体文件

这样即使只加载一份数据,内存占用也比较大吧?
dhdahai 2012-08-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

用文件映射应该可以吧?

freetype初始化的时候,用FT_New_Memory_Face
[/Quote]

谢谢回复!

这样的话是不是要加载整个字体文件到内存?

FT_New_Face好像没有加载所有字体数据,

这样的话即使加载一份字体文件,内存占用也比较大吧?
Perry118 2012-08-07
  • 打赏
  • 举报
回复
那你直接写个程序试试,进程加载字体,消耗多少内存,内存映射加载,消耗多少内存。

如果内存使用都差不多,不就不关加载字体什么事啊。
dhdahai 2012-08-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

你是在机器上打印内存情况还是在模拟器上啊?

用内存映射,怎么可能会减少物理内存啊。。

在机器上试试喔
[/Quote]

我是在机器上打印内存使用状况的

用内存映射加载字体文件,和我原来各个进程加载字体文件相比,

内存占用情况差不多
Perry118 2012-08-07
  • 打赏
  • 举报
回复
你是在机器上打印内存情况还是在模拟器上啊?

用内存映射,怎么可能会减少物理内存啊。。

在机器上试试喔
Perry118 2012-08-07
  • 打赏
  • 举报
回复
哪两种啊
dhdahai 2012-08-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

文件映射是虚拟内存呀。你试试呀。
[/Quote]

试了一下,两种方法,占用内存基本上没差别
Perry118 2012-08-06
  • 打赏
  • 举报
回复
用文件映射应该可以吧?

freetype初始化的时候,用FT_New_Memory_Face

19,519

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧