边缘计算发展前景的展望
|
代码3与代码2相同,只是定义了变量i和x,以查看全局变量是否是导致难题代码性能变慢的原因。 运行代码3,用时805毫秒(代码2用时434 毫秒)。代码3的用时非常接近于代码1(即739毫秒)。这正如预计的,处理全局变量比处理局部变量(固定大小的数组与字典)花费更多的时间。
如你所见,只需要了解一点关于Python解释器的工作原理,以及从dis库中得到帮助,这个难题即可迎刃而解。 如图所示,两个代码在给定的指令方面非常相似。但是,仔细观察,会发现字节码中有一些细微的(但是很重要的)差异。在代码1中,可以看到STORE_NAME和LOAD_NAME,但是在代码2中,可以看到STORE_FAST和LOAD_FAST。运行时间的差异似乎是由于这两种指令类型的不同造成的。可以查看ceval.c文件来了解其中的差异。 简而言之,在代码1中,解释器处理变量i和x的方式与代码2不同(注意_NAME和_FAST后缀)。代码1中,i和x都是全局变量,而CPython将这些变量存储在字典数据结构中,这使得加载过程比存储在固定大小数组中的局部变量耗时更久。与字典相比,从固定大小的数组中检索变量要快得多。 为什么Python这么做?很简单,因为在主代码中,不知道有多少变量会出现,但是在一个函数中变量的数量是固定的。
如果这是原因所在,来做个测试:把解释器打乱,在代码2(快速代码)中将x和i变量定义为全局变量,并再次测量运行时间。这是改变后的代码2: 目前各行各业对开源人才的需求已经有供不应求的趋势,可以预见,这个需求只会日益增加。根据Linux基金会发布的最新调查报告发现,93%的招聘负责人表示很难找到足够具有开源技能的人才,合格的开源人才仍然供不应求。Linux基金会与哈佛大学创新科学实验室的一份新报告还发现,56%的受访者认为,参与开源项目对获得当前工作很重要,55%的人认为参与开源项目增加了他们的薪水或以其他方式改善了其工作前景。 你是否也想了解国内开源开发者现状?是否也想知道其他技术小伙伴的努力方向?参与开源项目,是不是程序员该有的经历?来,请跟随Linux Foundation开源软件大学的视角,一起来了解下吧! 重要发现
尽管2020年异常艰难,工作岗位流失,行业被迫改善商业模式,许多人面临新的工作方式。但站在新十年的起点,虽然重大的挑战依然存在,但我们有理由相信,无数新的职业机会将为那些不断学习和追求技术进步的开发者提供机遇。从今天开始,持续学习不断努力,以期幸运之神的到来。 (编辑:周口站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
