佛山外贸网站推广网站开发系统设计怎么写

diannao/2025/10/19 12:36:22/文章来源:
佛山外贸网站推广,网站开发系统设计怎么写,博创网站建设团队,广州建站哪个济南兴田德润实惠吗程序运行太慢#xff0c;想要提速#xff0c;但不使用复杂的技术如 C 扩展或 JIT 编译器。 解决方案 程序优化的第一准则是“不要优化”#xff0c;第二准则是“不要优化那些不重要的部分”。基于这两个原则#xff0c;如果你的程序运行得很慢#xff0c;你得先找出影响性… 程序运行太慢想要提速但不使用复杂的技术如 C 扩展或 JIT 编译器。 解决方案 程序优化的第一准则是“不要优化”第二准则是“不要优化那些不重要的部分”。基于这两个原则如果你的程序运行得很慢你得先找出影响性能的问题所在。 多数时候我们发现程序把大量的时间花在几个热点位置比如处理数据的内层循环。一旦确认了这些热点就可以使用以下各小节中介绍的技术让程序运行得更快。 使用函数 很多人开始使用 Python 时都是用它来编写一些简单的脚本。最开始时很容易陷入只管编写代码而不重视程序结构的怪圈。例如 # somescript.pyimport sys import csvwith open(sys.argv[1]) as f:for row in csv.reader(f):# Some kind of processingpass 一个鲜为人知的事实是像上面这样定义在全局范围内的代码比定义在函数中的代码要慢。速度的差异与局部变量与全局变量的实现机制有关涉及局部变量的操作要更快。因此如果想让程序运行得更快可以将脚本中的语句放入函数中即可 # somescript.py import sys import csvdef main(filename):with open(filename) as f:for row in csv.reader(f):# Some kind of processingpassmain(sys.argv[1]) 运行速度的差异与具体执行的任务有关但根据经验提升 15% ~ 30% 的情况很常见。 消除属性访问 每次使用句点操作符.来访问对象的属性都会带来开销。在底层这会触发调用特殊的方法。 通常可以用 from module import name 的导入形式以及选择性地使用绑定方法bound method来避免出现属性查询操作。我们用下面的代码片段来加以说明 import mathdef compute_roots(nums):result  []for n in nums:result.append(math.sqrt(n))return result# Test nums range(1000000) for n in range(100):r compute_roots(nums) 当在我们的机器上测试时这个程序运行了大约 40 秒。现在将 compute_roots() 函数修改为如下形式 from math import sqrtdef compute_roots(nums):result []result_append result.appendfor n in nums:result_append(sqrt(n))return result 修改后的版本运行时间大约是 29 秒。唯一不同之处就是消除了属性访问。用 sqrt() 代替了 math.sqrt()。result.append() 方法被赋给一个局部变量 result_append然后在内部循环中使用它。 但是必须强调的是只有在频繁执行的代码中做这些修改才有意义比如在循环中。因此这种优化技术适用的场景需要经过精心挑选。 理解变量所处的位置 前述提及访问局部变量比全局变量要快。对于需要频繁访问的名称想提高运行速度可以通过尽量让这些变量尽可能成为局部变量来实现。例如 import mathdef compute_roots(nums):sqrt math.sqrtresult []result_append result.appendfor n in nums:result_append(sqrt(n))return result 在这个版本中sqrt 方法已经从 math 模块中提取出来并放置在一个局部变量中。如果运行这份代码执行时间大约是 25 秒这比上一个版本的 29 秒又有所提升。根本原因就是查找局部变量比全局变量要快。 当使用类时局部参数同样能起到提速的效果。一般来说查找像 self.name 这样的值会比访问一个局部变量要慢很多。在内层循环中将需要经常访问的属性移到局部变量中来会很划算。例如 # Slower class SomeClass:...def method(self):for x in s:op(self.value)# Faster class SomeClass:...def method(self):value self.valuefor x in s:op(value) 避免不必要的抽象 装饰器decorator、属性property或者描述符descriptor包装过的代码运行速度通常会变慢。参考以下代码 class A:def __init__(self, x, y):self.x xself.y ypropertydef y(self):return self._yy.setterdef y(self, value):self._y value 测试一下 from timeit import timeita A(1,2)timeit(a.x, from __main__ import a) 0.07817923510447145timeit(a.y, from __main__ import a) 0.35766440676525235使用内建的容器 内建的数据类型比如字符串、元组、列表、集合以及字典都是用 C 语言实现的速度非常快。如果需要构建自己的数据结构作为替代例如链表、二叉树等想在性能上达到内建的速度几乎不可能因此还是尽量使用内建的数据结构吧。 避免产生不必要的数据结构或者拷贝动作 有时候程序员可能会创建一些不必要的数据结构比如下面的代码 values [x for x in sequence] squares [x*x for x in values] 也许这里的想法是首先将一些值收集到一个列表中然后使用列表推导来执行操作。不过第一个列表完全没有必要可以简单的像下面这样写 squares  [x*x for x in sequence] 与此相关还要注意下那些对Python的共享数据机制过于偏执的程序所写的代码。有些人并没有很好的理解或信任Python的内存模型滥用 copy.deepcopy() 之类的函数。通常在这些代码中是可以去掉复制操作的。 讨论 在进行优化之前有必要研究一下使用的算法。选择一个复杂度为 O(n log n) 的算法要比你去调整一个复杂度为 O(n**2) 的算法所带来的性能提升要大得多。 如果优化代码势在必行那么请从整体考虑。作为一般准则不要对程序的每一个部分都去优化,因为这些修改会导致代码难以阅读和理解。你应该专注于优化产生性能瓶颈的地方比如内部循环。 还要注意一些小的优化的结果。比如下面创建字典的两种方式 a {name : AAPL,shares : 100,price : 534.22 }b dict(nameAAPL, shares100, price534.22) 后面一种写法更简洁一些你不需要在关键字上输入引号。不过如果你将这两个代码片段进行性能测试对比时会发现使用 dict() 的方式会慢了3倍。看到这个你是不是有冲动把所有使用 dict() 的代码都替换成第一种。不过聪明的程序员只会关注他应该关注的地方比如内部循环。在其他地方这点性能损失没有什么影响。 如果你的优化要求比较高本节的这些简单技术满足不了那么你可以研究下基于即时编译JIT技术的一些工具。例如PyPy 工程是 Python 解释器的另外一种实现它会分析你的程序运行并对那些频繁执行的部分生成本机机器码。它有时候能极大的提升性能通常可以接近 C 代码的速度。不过可惜的是到写这本书为止PyPy 还不能完全支持 Python3。因此这个是你将来需要去研究的。你还可以考虑下 Numba 工程 Numba 是一个在你使用装饰器来选择 Python 函数进行优化时的动态编译器。这些函数会使用LLVM被编译成本地机器码。它同样可以极大的提升性能。但是跟 PyPy 一样它对于 Python 3 的支持现在还停留在实验阶段。 最后我引用John Ousterhout说过的话作为结尾“最好的性能提升就是从不工作转变为可以工作”。直到你真的需要优化的时候再去考虑它。确保你程序正确的运行通常比让它运行更快要更重要一些至少开始是这样的。 参考 《Python Cookbook》第三版http://python3-cookbook.readthedocs.org/zh_CN/latest/ 关于简说基因 生信平台Galaxy中国UseGalaxy.cn致力于打造中国人的云上生物信息基础设施。大量在线工具免费使用。无需安装用完即走。活跃的用户社区随时交流使用心得。生信培训简说基因的生信培训班荣获学员的一致好评。如果你也对生物信息学感兴趣欢迎来跟简说基因学真生信。生信分析我们能够承接所有 NGS 组学数据分析业务包括但不限于 WGS / WES / RNA-seq 等。基因组组装、注释以及各种重测序业务都可以与简说基因合作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/92080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

太仓网站公司网站漂浮广告代码

From: http://yaven.iteye.com/blog/1084044 今天找了很久关于在VIM中格式化xml的插件都没找到,后来才发现其实不用装插件,在linux环境中使用xmllint就可以实现对xml文件的格式化功能。 1,安装libxml2。 Libxml2 是一个xml的c语言版的解析器&…

网站建设做网站需要多少钱?红河网站建设

关于placement new 在https://blog.csdn.net/qq_42604176/article/details/111997397中已经介绍了placement new的形式。 它的形式为new()/delete().我们将分配好内存的指针送入括号中,就完成了初步的调用了。 其实我们可以定义放任何的东西到()内部。只放一个指针…

网站建设与管理的发展怎么开发手机网站

按照这个路径,找到config.inc.php文件,打开 找到下面三个语句 db_server:一般填127.0.0.1,如果修改了mysql的端口号,要在后面加上修改后的端口号,默认为3306 db_user:自己mysql数据库的用户名 db_password&#xff1…

深圳专业专业网站建设公司简单网站开发流程图

卖家工具箱源码上周,我们在LINEAS成立了一个“测试技能小组”,该小组用于交换有关测试的知识。 各种各样的问题反复出现的一个问题是:有哪些工具可以测试和分析代码? 因此,这是我对此的个人回答,按照我倾向…

租空间开网站七台河市网站建设

上一篇《对产品质量的一点思考》中说到自动化测试的重要性,本文简单介绍下怎样在实际项目中实现端到端测试的自动化,在这里我们使用的端到端测试工具是TestCafe。环境Jenkisn:2.183TestCafe:1.3.0为什么采用TestCafe做自动化测试要…

靖江做网站哪家好wordpress动漫视频主题

USI中,Hash的作用是什么? 在笔出墨之前,USI controller需要得到笔的一系列信息,例如颜色、宽度、压力、倾角信息等等,才允许出墨。 为了加快出墨的速度,USI controller内置一个information cache&#xf…

做同城相亲网站中国建设银行官网开户行查询

Ontrack EasyRecovery 16是由Ontrack官方最新出品的一款全面的自助数据恢复软件,中文名称叫做:易恢复。它能够轻松恢复所有的文件类型,包括文档、表格、图片、音视频和其他文件等,支持恢复不同存储介质数据:硬盘、光盘…

网站转化率是什么意思吴江区建设工程招标网站

这个问题是很难的,因为1980年代G.Kolesnik的二变量指数和方法被认为是登封造极,他关于ζ(1/2it) 和 Dirichlet 除数问题的论文1982年刊登在Pacufic.J.Math.,文中列了很多无法验证的方程,真不知道论文怎么能发表。所以1985年意大利E.Bombieri和…

o2o网站开发免费发布网站建设信息

Python-strace命令追踪ssh操作 通过strace 命令追踪ssh的进程ID,记录操作的命令[实际上是内核里面记录的东西],进行操作日志的Py解析达到效果 追踪进程并写入ssh操作到文件中 Ps: 此时机器A已经ssh登录了机器B,取得它的ssh进程PID 机器A登录后…

沈阳建网站山西运城市建设局网站

1.自己设置温度湿度阈值&#xff0c;当温度过高时&#xff0c;打开风扇&#xff0c;蜂鸣器报警 2.当湿度比较高时&#xff0c;打开LED1灯&#xff0c;蜂鸣器报警 bee.c #include"bee.h" void bee_init() {RCC->MP_AHB4ENSETR | (0x1<<1);GPIOB->MODE…

cad图做网站链接wordpress分类目录打不开

今晚下Windows Server2008的镜像下下来了&#xff0c;装在VM上了。给它分配了1G的内存&#xff0c;运行&#xff0c;速度真不错&#xff0c;比现在用的开发的机器的速度要快许多。真爽哟&#xff01;本本是Dell D630,Intel Core2 双核 T7250,2G内存。装的Vista系统&#xff0c;…

做非法网站怎么盈利seo营销方法

单位四元数 #region 单位四元数print(Quaternion.identity);testObj.rotation Quaternion.identity;//初始化对象时可能会用来赋值Instantiate(testObj,Vector3.zero,Quaternion.identity);#endregion 插值运算 #region 插值运算 //四元数中也提供了如同Vector3的插值运算 /…

网站建设合同封皮网站备案名称要求

yii2-fast-api yii2-fast-api是一个Yii2框架的扩展&#xff0c;用于配置完善Yii2&#xff0c;以实现api的快速开发。 此扩展默认的场景是APP的后端接口开发&#xff0c;因此偏向于实用主义&#xff0c;并未完全采用restfull的标准&#xff0c;方便前端开发处理接口数据以及各种…

山东省住房与城乡建设网站网址提交大全

我最近需要读取一堆文件&#xff0c;而不是仅仅抓住我和可能是大多数开发人员拥有的旧FileUtils.java&#xff0c;然后从一个项目复制到另一个项目&#xff0c;我决定快速了解其他方法。 是的&#xff0c;我知道有Commons IO和Google IO &#xff0c;我为什么还要打扰&#xf…

南宁做网站价格和别人做网站接单赚钱

方法一&#xff1a;按住shift键&#xff0c;鼠标右击&#xff0c;会出现"在此处打开命令窗口"&#xff1b;方法二&#xff1a;修改注册表&#xff0c;为鼠标右键添加打开命令行功能&#xff1b;(1)将下列内容赋值到记事本中&#xff0c;并保存为.reg文件。Windows Re…

案列网站新手如何建网站

目前在接触平台侧的开发&#xff0c;发现平台侧的东西和以前javacard开发很不一样&#xff0c;看来以后要学的东西还有很多很多。今天接触了下EasyMock。 Mock 方法是单元测试中常见的一种技术&#xff0c;它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象&#xf…

vps云主机可以建立几个网站网站规划的基本内容不包括

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…

大型网站seo策略平乡县网站建设平台位置

文章目录 一、前言二、实验环境三、PyTorch数据结构0、分类1、Tensor&#xff08;张量&#xff09;1. 维度&#xff08;Dimensions&#xff09;2. 数据类型&#xff08;Data Types&#xff09;3. GPU加速&#xff08;GPU Acceleration&#xff09; 2、张量的数学运算1. 向量运算…

html5 学习网站外贸手机商城网站建设 深圳

1. 起因 由于某些原因需要在大量的文献中查找相关内容&#xff0c;手动实在是太慢了&#xff0c;所以选择了GROBID库进行文献批量解析 2. GROBID介绍 GROBID是一个机器学习库&#xff0c;用于将PDF等原始文档提取、解析和re-structuring为结构化的XML/TEI编码文档&#xff0…

龙岗网站app建设免费网页游戏手机版

前言 通讯录是一种记录联系人信息的工具&#xff0c;包括姓名、电话号码、电子邮件地址、住址等。 文章的一二三章均于上一篇相同&#xff0c;可以直接看第四章改造内容。 此通讯录是基于通讯录1.0&#xff08;静态版&#xff09;的基础上进行改进&#xff0c;请先看系列文字第…