栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

python异常处理是否比PHP和/或其他语言更有效?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python异常处理是否比PHP和/或其他语言更有效?

从历史上看,在类似C ++ 的语言中,与同一种语言中的 其他形式的流控制相比,异常的速度非常慢。

在C ++中,有两件事在起作用:

  • 引发异常非常复杂。堆栈需要被展开,并在本机代码这样做是 比在基于虚拟机的高级语言更难。
  • 常规的直接流量控制非常快。它是本机代码;分支是一对指令,其中回滚堆栈的异常会调用复杂的算法(在可能压缩的大表中查找堆栈数据,依此类推)。

这种性能上的差异导致了例外背后的普遍智慧:仅在不寻常的事情上这样做,因此仅在最有益的地方使用它,而不会损害性能。

这不适用于高级语言。这也有两个原因:

  • 回滚堆栈要简单得多。堆栈很容易检查。您不需要魔术表即可知道在任何给定时间回滚堆栈的距离以及构造了哪些对象。
  • 常规程序流程本质上较慢。在基于VM的语言中,一切都从一开始就需要更多的工作。

例外仍然不是免费的,但这种差异不再是一件值得担心的事情。这意味着在C ++中形成的一般智慧在这里被错误地应用了。正常程序流程中经常使用异常。

实际上,它们内置于语言中,是您一直使用的结构。每次使用迭代器– Every时,都会使用

for x inxrange(1000)
一个
StopIteration
异常来结束循环。

选择Python中的例外或线性流控制,这更有意义。不要基于性能进行选择,除非您实际上处于性能很重要的内部循环中。在这种情况下,像往常一样,剖析并找出是否确实重要。

(我不能说PHP。)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/662425.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号