我正在为iPhone制作一个实时语法荧光笔,我创建了一个自定义UIView,它接受一个字符串,解析它,然后在其drawRect:方法中突出显示它。我还实现了一个闪烁的光标。然而,它开始变得有点慢,我认为当我实现多行处理和块处理时,它会减慢它的速度。但是,我尝试将[formattedTextView setNeedsDisplayInRect:]
调用放在我的视图控制器中的函数中,然后使用[self performSelectorInBackground:@selector(updateDisplay) withObject:nil]
调用单独的线程。键盘现在响应速度更快,但这似乎是在单核处理器上使用线程很糟糕。
做这样的事情有什么问题吗?
由于
答案 0 :(得分:1)
正如您自己指出的那样,在单处理器上,多线程不会带来巨大的性能提升,但会带来稳定性和复杂性的惩罚。
动态语法着色是一个难题,充满了可能性以进行优化:
答案 1 :(得分:0)
我正在研究实时语法荧光笔
您是在进行关键字突出显示还是编写了BNF解析器?
对于后者,为什么不让它在一个线程中运行; GUI只显示到目前为止已解码的所有颜色。这样你就可以获得即时更新但延迟着色。