今天花了一天的时间来做一个nio的题目,看起来并不难,代码写完之后稍微测试了一下,感觉没问题,提交,结果提示程序运行结果有问题。debug了很久,短短300行代码中发现了四五个bug!受不了我自己了,编程的时候都考虑的不全面,有时候还会出现点笔误,严重鄙视自己!后来又从网上找来测试数据,发现程序仍然有问题,还好,这次是理解题目出现了偏差,纠正过来之后,再运行测试用例,都通过了。满怀信心的提交,结果提示:Time Limit Exceed 。我已经在改进效率上花了一番功夫,没想到效率还是很低。吃晚饭的时候还考虑自己再写一个内存池来提高动态分配内存效率,因为我认为,程序花在分配内存的时间太多了,程序执行过程中会生成很多小的对象。正准备开始写自己的分配函数,突然想到为什么不先profile一下呢,看看到底哪里是性能的瓶颈。结果完全出乎我的意料之外,生成那些小对象基本没有占用什么时间,反倒是在我写的一个addEvent函数整个执行过程中被调用了近20000次,花了3秒多的时间,问题竟然在这里!稍加分析,得出问题的根源所在,改写之后,3秒时间变为了3毫秒!

总结:

1.在profile之前,凭自己的判断来确定瓶颈往往不可靠!记住80-20原则,找到问题的根源再动手改进!

2.基础还比较差,需要静心学习!

发现自己水平很欠缺!相关推荐

  1. 【荐读】我观察14年才发现,那些很努力却没成就的人都有一个特点

    [荐读]我观察14年才发现,那些很努力却没成就的人都有一个特点 2017-03-29 正信正行珞珈精英 来源:知识管理中心KMCenter(ID:KMCenter) 作者:田志刚 http://mp. ...

  2. 我观察14年才发现,那些很努力却没成就的人都有一个特点

    转自羊城晚报 http://mp.weixin.qq.com/s?__biz=MjM5MTYwMTMwMQ==&mid=2651260915&idx=7&sn=48a66743 ...

  3. linux 空闲物理内存 很少,linux系统free查看内存,发现可用物理内存很少,但是查看进程却发现没进程占用大内存...

    1.现象 当我们使用free命令查看内存的时候,发现可用物理内存很少,但是通过进程查看没有进程占用大内存. [root@nexus-76150 ~]# free -h total usedfreesh ...

  4. 本人有一个60G的金士顿的固态硬盘,测了4K分区对齐前后的区别,发现性能相差很大...

    本人有一个60G的金士顿的固态硬盘,测了4K分区对齐前后的区别,发现性能相差很大,不说了,先上图,软件优化和测分软件在下边,有下载的网址: 先上没有4K分区对齐的跑分 注意下图中 31k- BAD, ...

  5. 发现了一个很好用的电脑上用电脑控制安卓手机的软件

    2019独角兽企业重金招聘Python工程师标准>>> 发现了一个很好用的电脑上用电脑控制安卓手机的软件scrcpy, 还是开源的 地址: https://github.com/Ge ...

  6. 编程水平很高的程序员是如何训练出来的?

    我们首先需要弄明白"程序"究竟是什么.(此文转载自乐字节) 原理很简单:计算机是一种能够在一秒钟内做出数十亿道算术题的设备:程序员可以通过与或非三种逻辑判断影响计算机的做题顺序,这 ...

  7. JSON:如果你愿意一层一层剥开我的心,你会发现...这里水很深——深入理解JSON...

    2019独角兽企业重金招聘Python工程师标准>>> 我们先来看一个JS中常见的JS对象序列化成JSON字符串的问题,请问,以下JS对象通过JSON.stringify后的字符串是 ...

  8. 驱动开发基础知识 偶然发现的,很全面

     1.三种类型的WDM驱动程序    总线驱动程序(bus driver)    功能驱动程序(function driver)    过滤驱动程序(filter driver) 2.其他分类方法 ...

  9. 计算机专业考300分难吗,考研300分是什么水平 很难考吗

    考研300分,这是一个不太理想的成绩,对于不少学科,比如经济.管理.文学.教育学等学科而言,是进不了国家线的,自然,也就没有读研的可能. 考研300分什么概念 考研300分,这是一个不太理想的成绩,对 ...

最新文章

  1. 关于Nowpaper
  2. FireDAC 中文字段过滤问题
  3. @excel 注解_Java中注解学习系列教程-3
  4. 电脑工具栏怎么调整到下面_PDF格式的合同怎么盖公章?这不是在为难我胖虎吗?...
  5. 都说比特币无价值,涨得不合理;但你知道比特币最大的用途吗?
  6. 天然气压缩因子计算软件_测量天然气用什么流量计?
  7. iOS ChildViewController与View
  8. 应该怎样学习新知识?
  9. POJ2752 (Seek the Name, Seek the Fame,kmp)
  10. Corporate Action Guidelines Terms
  11. 进程间通讯:实现基于多进程的文件拷贝
  12. 简单脱壳教程笔记(6)---手脱FSG壳
  13. Python批量爬取某图片网站图片
  14. 兰浦秋来烟雨深 几多情思在琴心
  15. Android案例手册 - Android Studio连接夜神模拟器和逍遥模拟器
  16. photoshop多选文字_60多个Photoshop文字效果教程
  17. 119 李元翼 梧里 徒死無益
  18. 图像处理基础与理解 随笔一 图像的内插
  19. Windows 11正式发布,新功能太绝了!
  20. Tekton实践篇-Tekton和Argocd的梦幻联动

热门文章

  1. 巴比特MatPool运营NEO节点,2019年必定是 Staking 经济元年
  2. 巴比特首发 | 银行卡司法冻结应遵循法治程序
  3. 胡乱捣鼓03——PID定身12cm直线追踪小车做起来~
  4. python之路(1)_重要函数使用
  5. 训练神经网络的详细步骤,如何训练一个神经网络
  6. han_attention(双向GRU+attention)(imdb数据集---文档分类)
  7. sql数据库去重语法_oracle大数据去重sql语句
  8. nginx单点故障怎么破?
  9. 【面试】前端面试之开发性能篇
  10. matplotlib修改背景颜色和插入背景图片