0
757 次浏览

有很多其他帖子提到了 CPU,但我不确定我的问题是否直接相关,所以我开了一个新话题。如果我本应回复之前的帖子,请见谅。
我一直觉得 PT8 有点慢,但我同时打开了很多资源,所以觉得这很正常。我原本希望 PT9 会更快,但速度还是一样。我通常开着 Chrome,但即使不开,速度似乎也没有提升。有些搜索即使结果很多也很快(例如搜索“reckon”在不到一秒内找到了 275 个结果),但有些搜索非常慢,甚至根本没有返回结果(例如搜索“. (see”运行了好几分钟,我不得不多次使用任务管理器关闭 PT)。发生这种情况时,CPU 使用率似乎接近 100%。

我使用的是 Windows 10 (1903),内存为 16GB。处理器型号如下(如果这对谁有用的话):
图片

关于如何总体提升 PT 的速度或让所有搜索正常工作,大家有什么建议吗?

机器翻译自 English
Paratext (213 分) 发布
已重新显示 | 757 次浏览

3 个回答

0
最佳答案

请通过 Help > Give feedback 报告此类问题。在性能正常的电脑上,任何搜索都不应超过几秒钟。
这类问题通常源于我们在内部创建正则表达式来执行搜索,并且出现过几次生成的正则表达式因负向后行断言(negative look-behind)导致无限循环的情况(这被称为 灾难性回溯,且永远不会结束)。看起来你又发现了这个问题的一个案例。

机器翻译自 English
[Expert]
(16.7k 分) 发布

已重新显示

已报告

机器翻译自 English

你链接到了 RegexBuddy 创建者的文档。我经常使用它来帮助我构建良好的正则表达式,但我知道不同版本的 RegEx 有不同的语法。RegexBuddy 允许用户在适当的版本之间切换,但我并不总是确定应该选择哪一个。

有人能告诉我以下位置使用的正则表达式版本对应的正确“RegexBuddy”选项吗:

  • Paratext 9 Find/Replace
  • Paratext 9 RegexPal
  • Changes.txt, FinalChanges.txt, PrintDraftChanges.txt, DBLchanges.txt 等
  • SIL Encoding Converters
  • InDesign 中的 Grep Styles
机器翻译自 English
0

好吧,你确实找到了一个让开发人员测试的最佳搜索表达式。我刚刚在一个完整的圣经项目中搜索了
. (see
并开始计时。我在 4 分半钟后放弃了并取消了搜索。我有一台第 10 代 i7 处理器,6 核心,16GB 内存,所以这会让任何人的电脑都瘫痪。

我刚刚试了 9.1 版本,情况并没有好转。

机器翻译自 English
[Moderator]
(1.3k 分) 发布

已重新显示

如果你取消勾选“忽略空白差异”复选框(在 More>> 下),会有区别吗?

这其实不是一个解决方案,因为你可能确实想要匹配一个或多个空格,但这可能有助于找出导致变慢的原因。

机器翻译自 English

12 秒。看起来我们在“忽略空白差异”选项上存在问题。

机器翻译自 English
0

我只能回答关于 PT9 Find/Replace、RegexPal、PrintDraftChanges.txt 和 DBLchanges.txt 的问题。它们都使用 .Net 内置的正则表达式引擎:C# (.NET 2.0–4.8 & .NET Core 1.0–3.0)

机器翻译自 English
[Expert]
(16.7k 分) 发布

已重新显示

这段看似无害的文字中隐藏着一个非常重要的信息。你是说 Paratext 9 的 RegExPal 现在使用与 Paratext Find/Replace 相同的正则表达式版本吗?这意义重大且非常受欢迎,尽管我将不得不修改我的正则表达式库。完全值得。

机器翻译自 English

认为是的。这有点复杂。

在 Paratext 7.x 中,RegExPal 使用 Python 进行正则表达式搜索。为了简化 Paratext 8 中的代码,我们改为使用 IronPython,它是使用 .Net 实现的 Python。查看 IronPython 的源代码,似乎它使用 .Net 正则表达式引擎来实现 Python 正则表达式。

然而,由于普通 Python 和 .Net 的正则表达式实现之间存在细微差异,我猜测 IronPython 必须对表达式进行一些微调,以使其与 .Net 的实现兼容。我不完全确定它是否确实对正则表达式进行了一些处理以使其工作,或者这些更改是否会使 IronPython 与普通 .Net 略有不同。:sweat_smile:

机器翻译自 English

我想指出,在 Find 中,换行符会被忽略,因此你无法搜索类似 \\s .* 的内容来查找章节标题。即使你包含 (?-s),新行仍会被忽略。

机器翻译自 English

anon848905,你在 Find 对话框中提到的限制是有问题的。近几个月来,由于这种“忽略换行符”的现实情况,我与用户分享的许多表达式不再有效(如果它们在 pt9 中)。我经常使用负向字符类来实现“直到……”的功能……最常见的是

  • 直到新行:[^\r]+
  • 直到下一个标记(在同一行上)[^\r\\]+

这些表达式(或技术)用于将搜索限制在上下文中,现在不再有效。

我想再次提到,这对于那些不想深入使用 RegexPal 的用户,或者需要在 Paratext 中逐个修复大量问题的用户来说,是一个问题。

机器翻译自 English

你可以做的一件事是,通过导出 RegExPal 列表,用文本编辑器稍作调整,然后发送给其他用户,让他们在 List Window 中打开,以此与其他用户分享复杂的 RegEx Find。

机器翻译自 English

相关问题

0
1 个回答 194 次浏览
Two of our translators are reporting PT 7.5 freezing on their computers. They are both Windows 8.1 and PT is up-to- ... what PT was doing that made this happen? Thank you, mnjames
mnjames 1.9k 发布 提问于 六月 23, 2015
Paratext
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
If anyone destroys God’s temple, God will destroy that person; for God’s temple is sacred, and you together are that temple.
1 Corinthians 3:17
3,045 个问题
6,005 个回答
5,671 条评论
2,026 位用户