我正在将低级 C 库转换为 Delphi。
我发现了很多 Actor 。我觉得这在C世界很正常。我认为我可以安全地将它们扔掉。此处整数仅是 32 位。你觉得怎么样?
如果我将 OOP 转换为对象等,OOP 的开销可能是多少?
同样,我想知道 try ..finally 和异常的成本。
给我任何您认为有用的提示。
最佳答案
3 Similarly I want to know the cost of try .. finally and exceptions.
尝试...最终的成本可以忽略不计,除非在紧密循环中(将它们放在周围而不是在循环中)。通过平衡所有实例化/打开/分配与免费/关闭/取消分配,自由地使用它们来保护您的所有资源。
<code-to-open-a-file>
try
...
finally
<code-to-close-the-file>
end;
尝试... except 的成本明显更高。使用它们来响应发生的异常,但只有当您实际上可以采取一些有意义的操作时,例如反作用异常的原因,记录一些可能在应用程序的更高级别丢失的特定信息等。否则让异常传播给代码的调用者,这样它就可以(最终)在更一般的级别上被捕获。
永远不要让异常逃脱您的应用程序或库或其中的任何线程。
永远不要通过使用空的 except block 来“吃掉”异常:
try
...
except
end;
实际上只有一种情况才有意义:在记录异常的代码中捕获异常...然后始终添加注释来说明为什么要处理异常。
关于delphi - 将 C 转换为 Delphi - 指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3395274/