实习心得(四) 小错误引发的大问题

         实习过程中犯错肯定是难免的,由于一些小错误而引发的大问题导致浪费了比较多的时间也是有的,给出几个坑,希望大家以后不会再跳。

        内存泄露的真相

        第一次让测试的同学帮忙测试一个nginx小模块的时候,改动只是一些极少的地方,可是却出现了很严重的内存泄露,而我找了一天实在各种可能的原因都排除了,也找了nginx大牛看过了代码,讨论了觉得也没问题。不应该会内存泄露可是确实出现了。这时候就老大提醒你,不能完全相信测试的同学,毕竟他对我们的程序不是那么熟悉,我们应该去看着他操作一下,确认一下配置参数是否有问题,后来果然问题出现在配置文件里面,接收端口和发送端口设置完全一样导致。同样的问题还有一次是性能,就我自己的机器上面操作能达到5000次/秒,而测试的同学那边最多也就3000次左右每秒,一开始以为是发送请求的工具问题,后来各种比较之后才发现是运行程序的时候,没有告诉测试的同学关闭log导致写大量的debug 信息而导致的。这些都真的只是配置文件与参数这些非程序小错误引起,但却花了很多时间才找到。以后一定不能忽略配置文件与运行参数

       python卸载引发的“灾难”

       就很郁闷的一件事情,有一天想运行一个python程序,发现所用的版本不是2.7,有一些模块没有,于是想卸载了现在的版本,新装一个2.7的版本,我当时脑子一热用了yum remove,然后yes。就发现“哗哗”疯狂刷屏,好一会才结束,我满心欢喜想安装新python,却突然发现连最基本的yum ls等这些指令都无法使用了。然后被告知我的虚拟机也无法登录了,整个虚拟机挂掉了,幸好运维的同学够强大,才把我的数据都找回来了,但是也是有风险的,所以一定要小心,当然这样告诉我们数据一定要做好备份。这时候我去查了查yum remove,会删除与该软件相关联的所有其他包,模块或组件。记住以后一定慎用yum remove,可以考虑用yum update更新软件,用其他方式卸载软件 。安装软件时不要一味地yes,一定要好好看看所问的问题是什么才回答。

        数据类型带走的那些命中率

       这个坑是一位前辈的代码里遗留的,他使用一个int型的数与一个float型的数进行比较来作为是否命中缓存的依据,而他忽略了这个浮点型的数作为标准会参加各种运算,经过各种运算后不一定会有为0,而可能是一个极小的负数或正数,而这时候都不会与int型的0相等,而0其实是命中缓存的。这时候这个条件会将一部分符合条件的情况算作没有命中缓存,而重新进行一系列的查询,增加时间的消耗,降低了命中率。所以一定要注意不同数据类型之间的比较是否合适,会不会产生问题。

        不要让后人骂你

        这个不是一个小错误的问题,是一个小习惯的问题,其实说小也不小,一个程序的 命名规范很重要,最好让后面的读你代码的人在没有注释或极少注释的情况下也能很好地理解你的代码,而不是出现中文拼音开头的命名方式结合英文命名的方式,还有 注意格式大小写,空格,空行,美观的代码也会给后面读代码的人留下印象。不要让后面的读代码的人骂你,每天耳朵红。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值