读“让你的软件飞起来”持续更新代码运行效率之路

  通过看作者改进代码运行效率的过程,颇受震撼。以前只是关注一个算法的空间复杂度以及时间复杂度,看到初写的代码,就感觉已经没有可以进行优化的方向了。

但是作者却采用多种方式,达到了令人惊讶的结果。首先记录作者的改进的几个方向。

1、1维比2维数组运行快。

2、浮点数计算效率低。

3、移位比乘除快。

4、查表比计算快。

5、根据cpu,看alu个数,并行计算。

6、数据类型合适,运行快。

7、汇编。

在这些方法中,我们这些所出现的词汇并不陌生,但是为什么我们不知道在写代码的时候融入这些东西?以我个人来说,我写代码只能联系到时间复杂度,而对这些完全想不到。

时间: 2024-10-17 13:29:57

读“让你的软件飞起来”持续更新代码运行效率之路的相关文章

超赞的Linux软件分享(持续更新)

开发 Android studio - Android 的官方 IDE:Android Studio 提供在各种类型的安卓设备上构建应用最快的工具. Aptana - Aptana Studio 利用了 Eclipse 的灵活性并且专注于让它成为强大的web 开发引擎. Arduino IDE - 开源的 Arduino 软件(IDE)让编写代码和上传代码到开发板变得简单. BlueJ - 一款为新手设计的免费 Java 开发环境,世界范围内数百万人使用. Clion - 一款强大的跨平台 C 

上位机配置管理一体化软件说明【持续更新】

为了更好地进行上位机开发,特意开发了一款上位机配置管理一体化软件,该软件集成配置.通信及上层接口为一体,统一进行多线程通信及数据解析,可以快速进行上位机开发,已实际运用在多个项目,并稳定运行超过1年时间. 功能如下: [1]上位机配置   [2]上位机通信 [3]上层接口 软件截图: 原文地址:https://www.cnblogs.com/xiketangedu/p/11721322.html

Ubuntu 常用软件记录【持续更新】

主机之间通信 Shell 管理器: asbru-cm 文件传输工具: filezilla 虚拟化 Virtual box 原文地址:https://www.cnblogs.com/TianyuSu/p/12092872.html

让你的软件飞起来-----算法优化

摘自网络: 今天无意中看到一片文章<让你的软件飞起来>看后大是惊讶,也很有感触: 封面: 内容:          代码的运算速度取决于以下几个方面 1.  算法本身的复杂度,比如MPEG比JPEG复杂,JPEG比BMP图片的编码复杂. 2.  CPU自身的速度和设计架构 3.  CPU的总线带宽 4.  您自己代码的写法 本文主要介绍如何优化您自己的code,实现软件的加速. 先看看我的需求 我们一个图象模式识别的项目,需要将RGB格式的彩色图像先转换成黑白图像. 图像转换的公式如下:Y =

给大家推荐几款个人觉得特别好用的编程及日常用的软件(持续更新!)

原文:给大家推荐几款个人觉得特别好用的编程及日常用的软件(持续更新!) 子曾经曰过:"工欲善其事,必先利其器!",呵呵,好用的软件必然会对工作和生活提高很多效率,下面我就把我个人觉得不错的软件整理出来,这里可能之前提到过几个,不过没关系,以后我再发现好用的东西会在这里持续更新! 宝典总数:[27个]  更新时间:[2015年1月29日09:04:21] ※宝典1:源代码管理软件-"CODEHELP" CodeHelp是专门为我们程序员设计的一款源代码管理软件.它能方

自己总结的 iOS ,Mac 开源项目以及库,知识点------持续更新

自己在 git  上看到一个非常好的总结的东西,但是呢, fork  了几次,就是 fork  不到我的 git 上,干脆复制进去,但是,也是认真去每一个每一个去认真看了,并且也是补充了一些,感觉非常棒,所以好东西要分享,为啥用 CN 博客,有个好处,可以随时修改,可以持续更新,不用每次都要再发表,感觉这样棒棒的 我们 自己总结的iOS.mac开源项目及库,持续更新.... github排名 https://github.com/trending,github搜索:https://github.

iOS:开发常用GitHub开源项目(持续更新)

IOS开发常用GitHub开源项目(持续更新) 数据类 开源库 作者 简介 AFNetworking Mattt 网络请求库 ASIHTTPRequest pokeb 网络请求库 Alamofire cnoon Swift简洁网络请求库 SBJson stig Json解析引擎 JSONKit johnezang Json解析引擎 MJExtension CoderMJLee 字典转模型框架 KissXML robbiehanson XML解析 RNCryptor rnapier AES加密 F

用信号量解决进程的同步与互斥探讨【持续更新】

现代操作系统采用多道程序设计机制,多个进程可以并发执行,CPU在进程之间来回切换,共享某些资源,提高了资源的利用率,但这也使得处理并发执行的多个进程之间的冲突和相互制约关系成为了一道难题.如果对并发进程的调度不当,则可能会出现运行结果与切换时间有关的情况,令结果不可再现,影响系统的效率和正确性,严重时还会使系统直接崩溃.就比如你只有一台打印机,有两个进程都需要打印文件,如果直接让他们简单地并发访问打印机,那么你很可能什么都打印不出来或者打印的文件是...anyway,我们需要增加一些机制来控制并

[系列汇总] - 二十三种设计模式(持续更新中&hellip;)

摘要 最近在读GOF的Design Patterns: Elements of Reusable Object-Oriented Software(设计模式:可复用面向对象软件的基础),学习前辈们的经验来增加自己的编码设计能力.在学习的过程中,会把我从书上学到的知识以及自己的理解写到这里.一方面能够巩固自己学到的东西同时方便以后的复习,另一方面是希望能够帮助到那些跟我一样不大了解设计模式的人. 我理解的设计模式不是一套固定的代码,更多的是一种设计理念.它能够帮助我们解决特定的设计问题,使我们的程