- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章干货技巧!不需要任何工具,10个案例让Python执行速度飞速提升由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
虽然有很多的第三方库可以帮助提升Python的运行速度,但是使用起来非常的麻烦。今天,小编想从程序编写的角度,来提升程序的运行速度.
1.巧妙的利用Python的数据类型 。
在Python程序中,对于list列表进行 for i in list1的操作时,其时间复杂度为O(n),而对于set进行for i in set1的操作,时间复杂度为O(1)。所以在程序的执行时间上,就会出现非常大的差距.
2.利用迭代器来替代列表 。
利用迭代器来代替列表,已经逐渐的成为了Python编程者使用的一种方法,利用迭代器的操作,不仅可以节省时间,更重要的是可以节省大量的内存空间,上图中,利用列表的操作需要占用大约8M的内存,但是迭代器只需要88个字节.
3.利用局部变量代替全局变量 。
上图程序中,全局的变量z放入到函数myFunc中,局部变量的执行时间要小于全局变量,因此程序执行的时间也大大的缩短.
4.避免“点”操作 。
上图中可以看到,calculateSqrtWithDot函数和calculateSqrt函数唯一的区别在于是否通过点操作来调用sqrt函数。每当我们点操作来调用函数时,就会触发特定的方法,例如,__getattribute__() 和__getattr__(),这样的方法会调用字典操作,从而带来时间的消耗,因此在程序调用第三方库时候,可以尽量使用from xx import xx的方法来进行调用.
5.避免不必要的类抽象 。
在类中,尽量不要去使用装饰器,描述符等操作来包装程序,这会给程序的运行带来负担,所以如果没有必要的话,就不要去这样包装程序.
6.避免没有意义的数据拷贝 。
上图的程序中,list6是一次没有意义的数据拷贝,不仅造成了程序运行时间的损耗,而且造成了内存资源的浪费.
7.更改值时避免使用临时变量 。
上述的程序中,temp的临时变量是不需要的,使用临时变量temp造成了程序运行时间的增加.
8.字符串变量的操作 。
当字符串str1和str2操作使用“+”号操作时,Python解释器将申请内存空间,将数据str1和str2分别复制到新的内存空间中去,所以当进行N次的字符串”+“操作时,将会生成N-1个中间的结果,并且每个中间结果都会复制到新的内存空间中.
当使用join函数时,join函数将会一次性计算所需的所有内存空间,然后申请内存空间,并将所有的字符串元素复制到申请的内存中去.
9.巧用if判断 。
在运用if进行判断时,常用的有两种方式。 1 if ...and...。 2 if... or ...。为了节省程序的运算时间,当进行if x and y的判断时,x需要是False可能性比较高的判断条件。当进行 if x or y的判断时,x需要是True可能性比较高的判断条件.
10.利用for循环代替while循环 。
上图的程序中,可以看到,同样的功能利用for循环来替代while循环,for循环的速度要快于while循环.
总结 。
通过以上的10个小的案例,我们没有利用任何的第三方库或者是装饰器,单纯的从程序优化的角度来提升了Python程序的运行速度。大家可以借鉴上述的十个小的案例,在日常的程序编写过程中提升程序的运行速度.
原文地址:https://mp.weixin.qq.com/s?__biz=MzU3MDI5NzY2Mg==&mid=2247487337&idx=1&sn=f6d647dc2e802cf203e2372af8f88ec0&chksm=fcf0d338cb875a2e1c9fa920f39d26c86a0a0f6a3b6d6f092269af7f35b86ca881ea36a36d89&mpshare=1& 。
最后此篇关于干货技巧!不需要任何工具,10个案例让Python执行速度飞速提升的文章就讲到这里了,如果你想了解更多关于干货技巧!不需要任何工具,10个案例让Python执行速度飞速提升的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
前言 毫无疑问,组件通信是Vue中非常重要的技术之一,它的出现能够使我们非常方便的在不同组件之间进行数据的传递,以达到数据交互的效果。所以,学习组件通信技术是非常有必要的,本文将总结Vue中关于组件
简介 升讯威在线客服与营销系统是基于 .net core / WPF 开发的一款在线客服软件,宗旨是: 开放、开源、共享。努力打造 .net 社区的一款优秀开源产品。 完整私有化包下
前言 🍊缘由 一切源于热爱 说出来自己都感动了,差点就信了。真正起因是 参加了【掘金】的启航计划 ,活动期间有 三篇文章被推荐到首页 即可获得奖品。本狗秉承瞎猫碰到死耗子
前言 经常有读者问小编可否推荐一些 linux 入门书籍,正好最近在知乎也看到类似的问题,如几个零碎的命令难以在 linux 环境中存活,所以如果要真正形成自己的知识体系,还是要靠阅读专业书籍来积
部门沟通在一定程度上影响着SEO的产出,因为在大多数情况下SEO站在一个需求方的角度,通过沟通、商议与其他部门的同事确认需求的可执行性。但很多人都停在了需求的执行上,实际上很多技术人员、产品等需
好多站长在网站建设的时候往往既要考虑的网站的整体美观度,同时还要考虑到网站的实用性和营销作用,那么在这方面都有什么小技巧吗,或者有什么要注意的吗,原创小编今天就为大家整理了十条关于网站建设的实用小技
做好SEO是一个网站发展的必经之路。 菜鸟同学经常在问,到底SEO怎么做好?怎么让自己的关键词被搜索引擎收录在前面?其实想懂这个不难,要做好是真不易! 在这我们谈下百度的SEO算法,百度是目前最
小编为大家整理出了三个有关Linux性能监控和优化命令详细讲解,别看只有三个,但不影响他噎啊,本篇文章很长,涉及top命令、free命令和vmstat命令,真的是很详细的讲解,希望能
外链资源的拓展做为网站优化中一个非常重要的环节,已经是不争的事实,不管搜索引擎的算法如何变更,高质量的外链始终会占据一定的权重,我也相信每一个成熟的站长都有自己拓展以及布局外链的技巧,做为一个S
在这里我又总结了功能测试小白想摆脱测试点点点入门java编码必备的27个知识点,大家可以按照这个知识点进行深入学习重要的是大家在了解知识点以后,要亲自上手编码,出现问题,调试问题,解决问题,如此往复
12月的设计圈实用干货工具大合集来了!年底这波干货汇集了不少颇为有趣的工具,无缝图案创建工具可以帮你省去很多图案创建过程中的麻烦,而微软的机器学习工具干脆就是一个次世代的「设计和开发工具」,另外,字
简介 在本文中你将了解到Unicode和UTF-8,UTF-16,UTF-32的关系,同时你还会了解变种UTF-8,并且探讨一下UTF-8和变种UTF-8在java中的应用。 一起来看看吧。
不管是培训机构,还是一些SEO教程,甚至是各种SEO网站上所充斥着的很多SEO知识点都存在着盲区。而这个所谓的盲区对于多数的SEO从业新人来说影响巨大,甚至影响着自己手上实战排名优化的站点。结合
互联网相比线下最大的优势在于用户行为可追踪,可通过分析进行用户体验优化,由此产生了一个专业领域——网站分析,其方法与实践在 2008 年之前就已经理论化、系统化,相关产品也非常丰富,如处于全球顶
大家对百度搜索引擎都有过很多研究,各种角度各个方面的挖掘都已经很细致深入了。那么从PM的角度来看,SEO优化有哪些建议呢,今天海瑶SEO小编重点讲讲这六个方面的优化:关键词优化、URL命名优化、
本文将从 Git 入门到进阶、由浅入深,从常用命令、分支管理、提交规范、vim 基本操作、进阶命令、冲突预防、冲突处理等多方面展开,足以轻松应对工作中遇到的各种疑难杂症,如果觉得有所帮助,还望看官高
更多技术交流、求职机会,欢迎关注 字节跳动数据平台微信公众号,回复【1】进入官方交流群 BitSail 是字节跳动自研的数据集成产品,支持多种异构数据源间的数
什么是线程池? 很简单,简单看名字就知道是装有线程的池子,我们可以把要执行的多线程交给线程池来处理,和连接池的概念一样,通过维护一定数量的线程池来达到多个线程的复用。 线程池的好处 我们知
1. 命令行 不知道大家在日常操作 redis 时用什么可视化工具呢?以前总觉得没有什么太好的可视化工具,于是问了一个业内朋友。对方回:你还用可视化工具?直接命令行呀,redis
今天给大家分享自己在工作当中用到的SQLServer一些常用的脚本,希望能对大家有所帮助! 1、 查询数据库所有表结构 通过该脚本可以快速查找表字段,或者生成数据库设计文档、进行数据库对比。
我是一名优秀的程序员,十分优秀!