博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在自己编程过程中遇到的一些问题
阅读量:6432 次
发布时间:2019-06-23

本文共 885 字,大约阅读时间需要 2 分钟。

   虽然说需要描述自己在整个编程生活中遇到的一些问题和从中学到了什么,但是可能自己之前太过遥远的东西也记不太清了,就说说最近自己遇到的几个印象深刻的问题吧。

   第一个印象深刻的问题是关于计算机系统课程中,需要利用三重循环测试电脑性能的一个project。要求其实很简单,就是利用三重循环对一个三维数组进行求和运算,计算程序所运行的时间,通过时间分析程序性能。要求的数组大小从10*10*10到10000*10000*10000。从这里我想应该就可以看出一些问题了,我们的电脑一般是64位的,64位中int型占4个字节,此时如果数组大小为10000*10000*10000,则需要的内存是104乘以104乘以104最后乘以4,即约为4000GB,明显个人电脑不可能有这么大的内存,即使1000*1000*1000大小的也是需要4GB的内存的。就是通过这个例子,我们不能仅仅局限于普通的三重循环,当时因为太过于自信,没有考虑到这些问题,导致自己的电脑死机进而重装系统。这是印象比较深的一个问题。

   其实这个问题主要考察的是我们对于程序的局部性原理的理解。这个题目最后我想出的解决方法就是分块,分块之后明显在高速缓存中的命中率会显著提升,并且内存也是符合要求不会超出。这个问题其实在软件设计中也有可能会遇到,算是给自己提个醒。

   第二个印象比较深的问题就是,在无线网络的课程中,需要自己设计一个可视化的wifi扫描软件。个人利用QT实现了可视化的wifi扫描,但是我觉得还撑不上软件。在这个过程中让我印象深刻的就是,在最后程序运行的时候,一出现可视化界面程序就会卡死,运行不了。当时我的设计是让扫描程序的无限循环,来持续的更新信息,而导致卡死的问题仅仅只是因为我没有加上一句sleep。这个问题也让我明白,有些时候你运行代码没有问题,但是你换一种方式之后可能它就连运行都运行不了了。如果软件也是这么设计的话那肯定是不行的。

   之后如果还遇到什么问题的话我希望也能随时的进行记录和总结。

转载于:https://www.cnblogs.com/zhusihan/p/7725209.html

你可能感兴趣的文章
计算机程序的思维逻辑 (19) - 接口的本质
查看>>
自定义控件(二) 从源码分析事件分发机制
查看>>
CVE-2014-4113漏洞利用过程分析
查看>>
解密MSSQL链接数据库的密码
查看>>
Glide-源码详解
查看>>
你敢在post和get上刁难我,就别怪我装逼了
查看>>
直播 3.0 时代,在线教育行业的裂变和重构
查看>>
SpringBoot使用Nacos服务发现
查看>>
2017双11技术揭秘—阿里巴巴数据库技术架构演进
查看>>
我的友情链接
查看>>
Spring框架 - AOP使用
查看>>
Ansible常用内置属性
查看>>
C#使用正则表达式校验邮箱
查看>>
Linux自动清理N天前目录文件
查看>>
方便 快捷 安全的EVO邮件服务器
查看>>
bash的快捷键
查看>>
京东金融大数据竞赛猪脸识别(6)- 识别方法之二
查看>>
关于如何编写linux设备驱动
查看>>
Hibernate自动生成实体类注解
查看>>
DNS服务
查看>>