首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MCU上的代码执行时间

这些嵌入式系统通常是用c编写的,而且开发人员常常被迫对代码进行手工优化,可能会回到汇编语言,以满足性能的需求。测量代码部分的实际执行时间可以帮助找到代码中的热点。...本文将说明如何可以方便地测量和显示在基于Cortex-M MCU的实时执行时间。 测量代码的执行时间 测量代码执行时间的方法有很多。作为一个嵌入式工程师,经常使用一个或多个数字输出和一个示波器。...可以通过在目标代码之前和之后读取周期计数器的值来测量和计算代码段的执行时间,如下所示。...,delta表示所测量代码的实际执行时间(CPU 时钟周期)。...尽管如此,也许应该把中断的任务包括进来,因为它们会影响到代码的最后执行时间。

1.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    重构-改善既有代码的设计

    我一直认为代码结构是一个因人而异的事情,很多时候我们其实判断一个代码的好坏往往是通过主观判断,比如同样是实现一个功能,100 行的代码并非一定比 50 行的差;我们没有一个合理的标杆去评判。...但是,最近我的想法变了,发现有些代码一定是毒药,早点发现他们,往往会对于我们以后需求的修改有莫大的帮助。...命名 如果把整个项目代码比作是房屋建造,命名就是砖头,命名的好坏直接决定了你代码 50% 的可读性。绝大部分的情况下,读者应该可以通过你函数的命名,直接了解到你这个函数的功能。...书本上有一句话经常被人提到就是:写的代码越少,bug 越少,所以要减少函数长度 这句话我是不认可的,有的时候代码极具的减少,可能会带来一些意外的操作,因为长度的减少有些时候并不是 等值替换 特别是...) 的时候,重构重复的部分,别灰心 使用 lint 工具来检查重复代码 有时候,结构也是重复,仔细点 因为在实际情况我在实践的时候,往往刚刚抽离完成,就发现业务逻辑需要被更改,导致代码又拆开来的情况,或者需要提供额外的参数

    73520

    如何改善遗留的代码库

    原来的程序员早已离职去度假了,给你留下了一坨几百万行屎一样的、勉强支撑公司运行的代码和(如果有的话)跟代码驴头不对马嘴的文档。 你的任务:带领团队摆脱这个混乱的局面。...冻结数据库 直到你修改代码结束之前尽可能冻结你的数据库,在你已经非常熟悉代码库和遗留代码之后再去修改数据库。...底层代码的重构 现在,你应该非常理解每一个模块的作用了,准备做一些真正的工作吧:重构代码以提高其可维护性并且使代码做好添加新功能的准备。...任何时候都不要尝试彻底重写 彻底重写是那种注定会失败的项目。一方面,你在一个未知的领域开始,所以你甚至不知道构建什么,另一方面,你会把所有的问题都推到新系统马上就要上线的前一天。...如果旧的构建工具已经不能用了,你将必须使用一些技巧(看下面),但至少当你开始做修改的时候,试着尽力保留已知的工作。那样随着代码库的提升你也对代码的作用更加理解。一个典型的代码提交应该最多两三行。

    56170

    重构 改善既有代码的设计--笔记

    就是看两点:1)这个类实例变量太多,必然会有Duplicated Code(重复代码) 2)类内如果有太多代码,也会产生Duplicated Code,让整个类看起来混乱并最终走向死亡。...针对这种情况你需要使用Move Mehod和Move Field将需要修改的代码放进同一个类中,如果眼下没有合适的类的话,就创建一个。...Shotgun Surgery和Divergent Change你都需要适时整理重构代码,让“外界变化”和“需要修改的类”趋于一一对应。...一个经典的坏味道的场景就是函数都某个类的兴趣高过对自己所处类的兴趣,往往焦点就是数据。...那么他们的目的是什么?可以说这两个模式主要是为了解决Divergent Change而设计的。总之最根本的原则就是:将总是一起变化的东西放在一块儿,数据和引用这些数据的行为总是一起变化的。

    49940

    读《重构:改善既有代码的设计》

    重构其实不仅可以重新梳理下我们的业务场景,梳理我们代码的逻辑,让其更贴合业务,更重要的是可以让开发人员有机会再次设计我们的系统,结合一些更好的开源项目和技术,提升团队的技术氛围。...是在不改变系统行为的前提下,对内部代码的重新组织,提高可理解性和降低修改成本。 为什么要重构?...一个小修改牵涉到了多个地方,且这些点处于未知状态 不易读懂代码(包括读懂自己1个月前的代码) 新手修改代码上手慢,需要很久才能进行有信心的代码修改 需求变化时,代码层面响应慢 什么时候需要重构?...: 存在重复代码时 函数体太长 函数参数太长 无法直观的看出代码逻辑 类太大 对一个常量存在了多个副本 很多很多的if/else/switch语句 类名、函数名、方法名不友好 重构与性能 重构为先,调优其次...Decompose Conditional(分解条件表达式) 往往逻辑比较复杂的地方,分支就较多 一个分支中如果写了很多小段代码,也应该重构成更有语义的代码 需要将分支重构为更加语义化,这样会提高可读性

    66640

    【笔记】《重构: 改善既有代码的设计》

    好久不见, 忙完一阵子开始继续更新了, 先让我水一篇杂的. 前段时间为了更好地重构自己的代码而看了《重构: 改善既有代码的设计》这本书, 以下是当时阅读期间做的简单笔记....重构就像是整理代码, 不断提炼代码的意图, 帮助维持代码的形态 改进设计的重要方向就是减少重复的代码, 方便未来对代码的修改 重构模式编程的核心就是理解代码, 然后修改代码, 让代码本身更好地表达出我们的理解...但是当感觉需要撰写注释时, 先尝试重构试着让所有注释都变得多余, 通过提炼函数, 重命名各种函数和变量, 用断言替代注释中的规格声明....有时候会遇到带有计数的临时变量, 可以尝试将循环提炼出来使得计数也被提炼到查询中. 和其他性能问题一样现在不用管, 因为十有八九根本不会造成任何影响. 若是性能真的出了问题也可以在优化时期解决它...., 可以尝试用多态子类来处理, 用工厂函数包装和类型码有关的目标类, 然后返回不同的子类, 这样未来也方便进行扩展, 尽量保证与类型码相关的switch只出现在工厂函数中. 8.15 以状态/策略对象取代类型码

    1.6K20

    重构:改善既有代码的设计.pfd

    “这段代码太烂了,我要重构一把”。 ——相信每个程序员都有过这样的心理活动。 重构是软件开发中必不可少的一个阶段。...因为经历过一段时间的紧张迭代,软件中必然会出现各种因为赶进度或者不规范操作遗留下来的问题文件和代码,若不及时清理,后续一定会造成更多的开销。例如: 1....其实无论基于什么原因,程序员重构的热情总是无休无止的~ 最近很多小伙伴问我要一些 重构 的相关资料,于是我翻箱倒柜,找到了这本 重构 领域的经典著作——《重构:改善既有代码的设计》。...资料介绍 该书清晰地揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。...书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。 ? 书中提出的重构准则将帮助读者一次一小步地修改代码,从而减少了开发过程中的风险。 ?

    44930

    架构重构改善既有代码的设计

    Solution   我们从XP中借用了一个词来形容架构模型的修改过程――Refactoring,中文可以译作重构。这个词原本是形容对代码进行修改的。...它指的是在不改变代码外部行为(可观察行为)的情况下对代码进行修改。...对软件架构进行重构 Martin Fowler的Refactoring一书为我们列举了一系列的对代码进行重构方法。架构也是类似的。   ...对于编码来说,测试优先的过程是先写测试用例,再编写代码来完成通过测试用例(过程细节不只如此,请参看XP的相关书籍)。...另一方面,在设计进行重构时,相应的测试用例也由很大的可能性发生改变。此时往往会发生需要改变的测试代码超出普通代码的情况。

    1.2K60

    重构 - 改善代码的各方面问题

    重构不是对以前代码的全盘否定,而是利用更好的方式,写出更好,更有维护性代码。不断的追求与学习,才有更多的进步。...因为对象强耦合或者业务逻辑的原因,导致业务逻辑的代码巨大,维护的时候排查困难。 重复代码太多,没有复用性。 随着技术的发展,代码可能也需要使用新特性进行修改。...评估的指标,可以参考下面几点 数量: 需要重构的代码是否过多。 质量: 可读性,可维护性,代码逻辑复杂度,等问题,对代码的质量影响是否到了一个难以忍受的地步。...时间: 是否有充裕的时间进行重构和测试。 效果: 如果重构了代码,得到哪些改善,比如代码质量提高了,性能提升了,更好的支持后续功能等。...如何保证每一次的改动都是有意义的改善代码;如何保证每一次的改动都不会影响到项目的正常使用;如果发现某次改动没有意义,或者改动了反而让代码更糟糕的时候,可以随时停止或回滚代码,这些才是重构的难点。

    1.2K130

    重构 - 改善代码的各方面问题

    重构不是对以前代码的全盘否定,而是利用更好的方式,写出更好,更有维护性代码。不断的追求与学习,才有更多的进步。...因为对象强耦合或者业务逻辑的原因,导致业务逻辑的代码巨大,维护的时候排查困难。 重复代码太多,没有复用性。 随着技术的发展,代码可能也需要使用新特性进行修改。...评估的指标,可以参考下面几点 数量: 需要重构的代码是否过多。 质量: 可读性,可维护性,代码逻辑复杂度,等问题,对代码的质量影响是否到了一个难以忍受的地步。...时间: 是否有充裕的时间进行重构和测试。 效果: 如果重构了代码,得到哪些改善,比如代码质量提高了,性能提升了,更好的支持后续功能等。...如何保证每一次的改动都是有意义的改善代码;如何保证每一次的改动都不会影响到项目的正常使用;如果发现某次改动没有意义,或者改动了反而让代码更糟糕的时候,可以随时停止或回滚代码,这些才是重构的难点。

    53510

    重构·改善既有代码的设计.02之代码的“坏味道”

    前言 之前在《重构·改善既有代码的设计.01》中初步了解了重构的基本前提,基础原则等入门知识。今天我们继续第二更...... 识别代码的坏味道 Duplicated Code 重复代码。...顾名思义,霰弹枪发散,修改一个东西,发现修改的代码散布在四处。可以考虑把所有需要修改的代码放进同一个类中。指一个变化引发多个类相应修改。 Feature Envy 依恋情结。其实就是代码职责。...按传统的说法,这就意味着继承体系设计错误。 Comments 过多的注释。当你感觉需要攥写注释时,请先尝试重构,试着让所有注释都变得多余。...试想一种情况:当你看到一段代码,有着很长的注释,然后你发现,这些注释之所以存在是因为代码写的很糟糕。视图用注释来说明函数的用意以及实现。...每次编译请把测试页考虑进去,每天至少执行每个测试一次 编写测试代码时, 一开始先让它们失败,测试一下测试代码的机制可以运行 每当收到一个bug报告,请先写一个单元测试来暴露这个bug 观察类该做的所有事情

    14610

    12 Steps to Better Code【改善代码的12步】

    今天给大家翻译一篇由大名鼎鼎stackoverflow创始人写的:关于如何改善代码的12点建议。下面我们就来领略一下大牛见解。 一、Do you use source control?...源代码控制系统,说白了就是我们常用的SVN和Git。他们的重要性,博主就不多介绍了。...想象一下,没有源代码控制系统,整个团队会发生事情:版本没办法控制、没办法回滚版本、没办法合并别人的代码,没办法查看冲突点,想想简直就是一场噩梦。...这个建议核心目的是为了防止开发提交错误代码或者代码提交不全,导致项目构建失败。如果每次提交代码之后,可以快速进行构建,就可以将构建结果反馈给开发人员,这样就不会耽误整个团队的进度了。...你是否有最近的日程安排,作为程序猿,我们最喜欢的就是代码,如果没有外力作用的情况下,大多数不会制定未来的日程计划。

    29810

    5 个改善代码可读性的方法

    在本文中,我会列举五条提高代码可读性的原则。这些原则是我在各种项目、团队和组织的实践中总结出来的经验。我希望大家可以从这篇文章中学到一些东西,从而提高代码的可读性。...第一次尝试肯定没法做到尽善尽美。 通过多次迭代,你就可以在重用应用程序很多部分的同时,仍然保持不错的可读性和可维护性。...我认为他们的选择并不是无意识的结果。 4. 为你的代码自动化执行一些规则和准则 想要编写出可读和可维护的代码,一方面要关注的是代码的架构,另一方面则要关注代码的样式。...就算只有你一个人,也要像在多人团队中一样编写代码 最后一点也是非常重要的,那就是永远都像在团队中一样编写便于协作的代码! 我可以想象,从未在团队中编写过代码的开发人员是很难理解这一条原则的。...你应该知道,可读代码与读起来略吃力的代码之间并没有很清晰的界限,不同人会在这个问题上有不同的看法。如果有人告诉你你的代码很难读,那也不要难过!你应该感谢对方的反馈意见。 - EOF -

    65330

    6种快速统计代码执行时间的方法,真香!

    我们在日常开发中经常需要测试一些代码的执行时间,但又不想使用向 JMH(Java Microbenchmark Harness,Java 微基准测试套件)这么重的测试框架,所以本文就汇总了一些 Java...方法四:Spring StopWatch 如果我们使用的是 Spring 或 Spring Boot 项目,可以在项目中直接使用 StopWatch 对象来统计代码执行时间,示例代码如下: StopWatch...忽略其他代码 } 从上述 start() 和 stop() 的源码中可以看出,Spring 实现时间统计的本质还是使用了 Java 的内置方法 System.nanoTime() 来实现的。...%n", stopwatch.elapsed(TimeUnit.MILLISECONDS)); } } 我们可以使用一个 Stopwatch 对象统计多段代码的执行时间...%n", stopwatch.elapsed(TimeUnit.MILLISECONDS)); } } 我们可以使用一个 Stopwatch 对象统计多段代码的执行时间

    1.6K20

    《重构:改善既有代码的设计》读书笔记

    这里有一个有意思的科普(引用自百度百科:没有银弹 ):在民俗传说里,所有能让我们充满梦靥的怪物之中,没有比狼人更可怕的了,因为它们会突然地从一般人变身为恐怖的怪兽,因此人们尝试着查找能够奇迹似地将狼人一枪毙命的银弹...提高编程速度 听起来可能有些反直觉,因为重构可能会花大量的时间改善设计、提高阅读性、修改 BUG,难道不是在降低开发速度嘛?...现在我们可以改善已有代码的设计,因此我们可以先做一个设计,然后不断改善它,哪怕程序本身的功能也在不断发生着变化。由于预先做出良好的设计非常困难,想要既体面又快速地开发功能,重构必不可少。...或者,如果把某些更新数据的逻辑与查询逻辑分开,会更容易避免造成错误的逻辑纠缠。用重构改善这些情况,在同样场合再次出现同样bug的概率也会降低。...注释: 当你感觉需要纂写注释时,请先尝试重构,试着让所有注释都变得多余。

    1.3K40

    重构-改善既有代码的设计:重构原则(二)

    1.什么是重构 重构(Refactoring):在不改变软件的功能和外部可见性的情况下,为了改善软件的结构,提高可读性、可扩展性和复用性性而对软件进行的改造,对代码内部的结构进行优化。...重构其实就是整理代码,让所有带着发散倾向的代码回归本位。...有些程序员总是能够快速编写出可运行的代码,但代码中晦涩的命名使人晕眩得需要紧握坐椅扶手,试想一个新兵到来接手这样的代码他会不会想当逃兵呢?...重构代码时逼迫你加深理解原先所写的代码。程序员经常对自己的程序逻辑不甚理解的情景,曾为此惊悚过,后来发现这种症状居然是许多程序员常患的"感冒"。...当你发现解决一个问题变得异常复杂时,往往不是问题本身造成的,而是你用错了方法,拙劣的设计往往导致臃肿的编码。 改善设计、提高可读性、减少缺陷都是为了稳住阵脚。

    68920
    领券