0

我创建了一个具有不同颜色支持的语法(关键字、评论等)的编辑器。使用这个编辑器,如果我们打开大文件(>18 MB),它就会崩溃。我认为这似乎是内存不足的问题。

当我在没有语法着色(禁用)的情况下打开文件时,我们使用 TextEditor API 打开文件,它似乎工作正常。

但是当我尝试使用相同的 API 并在编辑器中包含一些着色功能时,尝试打开相同的文件 (>18MB)。应用程序已崩溃。

知道为什么这会崩溃吗?

谢谢,

4

2 回答 2

1

这只是一个猜测,因为您没有显示任何代码:您是否有可能每次都创建新的 Color 对象?
您可以尝试使用本机颜色,即display.getSystemColor(SWT.COLOR_CYAN)或使用颜色注册表http://help.eclipse.org/helios/nftopic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/jface/resource/ColorRegistry .html用于管理您自己的颜色对象。

请记住:系统颜色不能手动处理!

于 2013-11-22T10:45:33.067 回答
0

首先,搜索名为“hs_err_pid”的崩溃日志文件并尝试从中获取一些信息

正如你所描述的,你使用着色我可以想象你的手柄用完了。如果颜色/字体/图标没有被释放,而是一直创建,系统会耗尽句柄,无法再创建新的 UI 组件。

于 2013-11-22T10:21:09.560 回答