我正在为编程考试而学习,我需要知道的一个词是确定性的,因为它适用于 python。
2 回答
如果每次运行程序都获得相同的结果和行为,则程序是确定性的。该术语并非特定于 Python。
在 Python 文档中有对此的引用,这是在 Google 上搜索返回的第一个结果。
确定性分析旨在反映这样一个事实:所有函数调用、函数返回和异常事件都受到监控,并为这些事件之间的间隔(在此期间用户代码正在执行)进行精确计时。相比之下,统计分析(不是由这个模块完成的)随机采样有效指令指针,并推断出时间花费在哪里。后一种技术传统上涉及较少的开销(因为不需要检测代码),但仅提供时间花费的相对指示。
在 Python 中,由于在执行期间有一个解释器处于活动状态,因此不需要存在检测代码来进行确定性分析。Python 自动为每个事件提供一个钩子(可选回调)。此外,Python 的解释特性往往会给执行增加太多开销,以至于确定性分析往往只会在典型应用程序中增加很小的处理开销。结果是确定性分析并不那么昂贵,但提供了有关 Python 程序执行的大量运行时统计信息。
调用计数统计可用于识别代码中的错误(令人惊讶的计数),并识别可能的内联扩展点(高调用计数)。内部时间统计可用于识别应仔细优化的“热循环”。累积时间统计应用于识别算法选择中的高级错误。请注意,此分析器中对累积时间的异常处理允许将算法的递归实现的统计数据直接与迭代实现进行比较。