老杨说话的地方
  • 首页
  • 关于老杨
  • 博客时间
  • 文章分类
    • 人工智能
    • 人生感悟
      • 共产主义
      • 能量哲学
      • 自然辩证法
    • 信息技术
      • C#笔记
      • LaTex
      • Linux
      • RIME
      • Ubuntu&Debian
      • WordPress
      • 基于Java的B/S系统构建
      • 开源开发
      • 病毒相关
      • 编程的坏习惯
      • 网上办公系统
    • 往事随风
      • 我在大学那几年
      • 童年趣事
      • 精彩生活
    • 情感随笔
    • 文学创作
      • 小说
    • 生活记录
      • 博士进行中
      • 美国一年
      • 老杨学游泳
    • 评论杂谈
  • 留言本
我是老杨
张驰有度 宠辱不惊
  1. 首页
  2. 情感随笔
  3. 正文

编程的坏习惯之资源浪费

2009年11月16日 7530点热度 0人点赞 18条评论

编程的坏习惯之资源浪费

永远记住:任何浪费资源的行为都是不可取的。这一点同样适用于计算机编程。

我们在计算机编程的时候,除了需要实现必须的功能之外,还需要考虑两个很重要的指标:时间复杂度和空间复杂度。时间复杂度指的就是程序执行的时间长度,空间复杂度指的是程序执行消耗的内存存储量。这里我把空间复杂度扩展一下,指的是消耗的计算资源,包括内存,CPU,硬盘,数据库开销。

  1. 尽管现在内存容量已经很大,但是对于程序而言,消耗的内存永远是越少越好!这里只说一些常见的问题:定义变量。我们在定义变量的时候应该遵从小范围原则,就是如果能够定义局部变量,那就不要把这个变量放到全局来,而且如果没有用到,不要对这个对象实例化。所谓的对象实例化,就是new,也就是说定义变量可以,但是在你用到的时候再new。因为程序中有很多情况,所以有时候这个变量定义了却没有被用到,那么如果你刚开始就把对象定义并且实例化了,无疑会浪费不必要的内存空间,所以定义和实例化变量的原则是:不到万不得已不定义。就是说如果不定义这个变量程序进行不下去了,那么这个变量才应该被定义和实例化出来,否则你可以考虑把他放在局部去,在需要的时候才实例化;
  2. 如果你的程序中同时定义了相同的或者类似的很多个变量或者对象,其实这是很消耗CPU的,这时候可以考虑使用对象的复制(clone),这样能够减少很多不必要的系统开销;
  3. 数据库的开销是很大的,数据库连接池很必要,另外如果同一个类用到很多次数据库连接,那么尽量不要不停的开闭,这样会造成很大的资源消耗,而是应该拿到一个连接之后把所有的数据库操作全部做完,再释放连接(非常重要)。在计算机中,不用的东西要全部取消掉:变量,类,数据库连接。用完之后要全部处理掉(destroy),当然Java有内存回收机制(双刃剑),情况另行讨论;
  4. 硬盘的开销在程序使用的时候是很少的,因为现在计算机的瓶颈基本上卡在了硬盘的速度上。因为硬盘的速度很低,所以很多时候我们愿意把数据放到内存当中以提高速度,而实际上,如果一个程序中的有些数据很少用到,那么为了分担内存的压力,是可以把一些数据存放到硬盘上的,比如我们常用的配置文件信息等,这样能够节省一部分的内存空间,毕竟内存空间比硬盘珍贵的多。

其实在编程的过程中这种资源的浪费是很多的,需要从小的地方做起,哪怕是一个小小的变量也要考虑它是不是需要定义。空间复杂度是衡量一个程序好坏的重要标准之一。

标签: java 坏习惯 程序 编程
最后更新:2026年11月02日
老杨

老杨

博士,非博学之士;讲师,讲所学所知。糊涂半生,虚度半世,唯愿平淡快乐,度过此生。

点赞

评论(18)

写下你的评论
  1. 小农夫
    小农夫2009年11月17日 13:11

    编程,对小农夫来说太难了

    1. 老杨
      老杨作者2009年11月17日 19:49

      @小农夫 嗯,比较专业了这个

  2. huangjun
    huangjun2009年11月17日 16:04

    我平时也就是写点网站代码,还谈不上浪费资源吧~

    1. 老杨
      老杨作者2009年11月17日 19:50

      @huangjun 网站代码如果浪费的话,那么有可能导致你的服务器速度减慢,或者网页代码增多,用户打开的速度变慢,也是有负面影响的

  3. 太阳博客
    太阳博客2009年11月19日 13:55

    高端项目,编程好难啊。

    1. 老杨
      老杨作者2009年11月19日 14:18

      @太阳博客 也不是什么高端项目了,都是最基本的

  4. 蓝冰
    蓝冰2009年11月20日 12:52

    不会变成的路过

    1. 老杨
      老杨作者2009年11月20日 15:37

      @蓝冰 你应该会,php你不会么?

  5. 天缘博客
    天缘博客2009年11月23日 20:37

    感觉少了一个,那就是网络开销。综合起来时间就是效率的问题,空间就是精炼的问题,也可说是效率的问题。

    1. 老杨
      老杨作者2009年11月23日 21:00

      @天缘博客 嗯,网络开销其实仍然是内存浪费的问题了,不过这是另外一个编程范围,那就是网络编程

      1. 天缘博客
        天缘博客2009年11月23日 22:59

        @老杨 网络开销应该算程序设计效率问题,在同一时刻未必会更多内存浪费,不过你的理解已经很上层次了,经验上应该比较丰富,否则很难提炼这些内容,新手提炼出来也未必会说的清楚。
        很多只会ASP、PHP或配置个服务器的网友可能很难理解这些内容,很不错,支持你。

        1. 老杨
          老杨作者2009年11月24日 08:36

          @天缘博客 谢谢,我是写给师弟师妹的,希望他们能理解

  6. 开心凡人
    开心凡人2009年11月26日 09:47

    我只要能用就行

    1. 老杨
      老杨作者2009年11月26日 14:53

      @开心凡人 这个不是针对用户的,是针对程序员的

  7. Hope
    Hope2009年11月27日 19:31

    刚看到你这篇文章。可别说,今天sky发现我在杨式框架中添加了一个读xml流没有关闭……

    1. 老杨
      老杨作者2009年11月28日 09:05

      @Hope 这种问题防不胜防

  8. 刀河
    刀河2009年12月04日 09:04

    太高深的理论了。呵呵

    1. 老杨
      老杨作者2009年12月04日 14:52

      @刀河 这个还好吧,不算高深,都是细节的东西

发表评论

选择代码语言
选好后在光标处插入代码块,把示例文字换成你的代码即可。

老杨

老杨

博士,非博学之士;讲师,讲所学所知。糊涂半生,虚度半世,唯愿平淡快乐,度过此生。

搜索
最新 热点 随机
关于机器人的发展 遥遥领先 开源密码生成工具SimplePassword 痛苦根源 同步日历-我的第一款鸿蒙应用(鸿蒙CalDav客户端) 别成为AI的奴隶 给阿嬷的情书 信息焦虑综合症 PUA 人的悲喜并不相通
为多用户安装Anaconda及其使用方法WordPress主题发布:kratos_YangLaTex中上划线\overline和\bar的使用说明LaTex中设置字体的正确方法那一年,2009使用Windows7自带Windows Media Center播放RMVB影片幼儿园:回味童年童年趣事之气门芯这几天的事儿无插件实现WordPress留言本
媒婆 Semor推荐:Flex音乐网站Anywhere.Fm 送人玫瑰,手有余香 会议记录 使用Godaddy的免费空间 准备换一种开发模式 搬新房喽 希望小米一直Low下去 穿上唐装以后 挺不错的网站统计工具:雅虎统计
最近评论
  • 感谢支持。可以买个鸿蒙设备玩玩
    老杨·2 周前·同步日历-我的第一款鸿蒙应用(鸿蒙CalDav客户端)
  • 没有鸿蒙设备,吆喝一声支持老杨的产品
    乱云/Akay·2 周前·同步日历-我的第一款鸿蒙应用(鸿蒙CalDav客户端)
  • 先从减少手机使用时间开始。
    shanshan·1 月前·信息焦虑综合症
  • 所以必须得自己下定决心痛改前非,而不是跟自己讲条件。
    shanshan·1 月前·第二青春计划失败
  • 这种平台挺多的,但是应该没啥用,能有啥情绪价值比躺着刷手机更好呢?
    老杨·1 月前·第二青春计划失败
  • 已经遇到了,额外支付了170,托运登机行李,还不是托运行李。
    老杨·1 月前·春秋航空让人长见识
  • 那很好,恭喜你
    老杨·1 月前·PUA
  • 可以尝试改变。
    老杨·1 月前·信息焦虑综合症
  • 现在很多人离开AI已经不知道怎么工作了。
    老杨·1 月前·别成为AI的奴隶
  • 建议开发一个适合P人的工作生活计划平台,完不成没什么惩罚、但是完成了有大大的情绪…
    shanshan·1 月前·第二青春计划失败
  • 还有部分机型里20寸箱子应该上不了机,且没有免费行李托运额度。托运费超贵!
    shanshan·1 月前·春秋航空让人长见识
  • 这个世界精致利己主义者太多啦!
    shanshan·1 月前·人的悲喜并不相通
文章分类
选择分类
  • 人工智能13
  • 人生感悟121
    • 共产主义1
    • 能量哲学12
    • 自然辩证法12
  • 信息技术234
    • C#笔记6
    • LaTex12
    • Linux18
    • RIME4
    • Ubuntu&Debian21
    • WordPress1
    • 基于Java的B/S系统构建10
    • 开源开发2
    • 病毒相关3
    • 编程的坏习惯4
    • 网上办公系统9
  • 往事随风41
    • 我在大学那几年18
    • 童年趣事12
    • 精彩生活5
  • 情感随笔113
  • 文学创作69
    • 小说68
  • 生活记录220
    • 博士进行中6
    • 美国一年22
    • 老杨学游泳4
  • 评论杂谈169
关注公众号

COPYRIGHT © 2026 老杨说话的地方. ALL RIGHTS RESERVED.

THEME KRATOS YANG Modified BY 老杨

鲁ICP备17014997号-4

鲁公网安备 37021302000754号