java的代码量少,依赖包少,程序运行速度上会有多少提高?

jaffy 2013-09-11 04:46:07
我们公司有个CS架构的java程序,买过一些客户了;但这个java程序做兼容性很高,几乎包含所有客户的需求,随着需求越来越多,维护上也很不方便,比如不同客户的处理方式不同,就得增加变量来区分控制。这样,可能会造成一定代码冗余。

现在,某个客户希望我们优化程序,如果对这个客户去掉冗余代码,以及它不需要的包的话,程序处理速度上会有多大提升空间啊?有没有这样的经验数据呢?
...全文
426 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
oh_Maxy 2013-09-13
  • 打赏
  • 举报
回复
如果代码耦合度高,不要为了性能而破坏功能。
kemucc 2013-09-13
  • 打赏
  • 举报
回复
与代码量无关……跟架构算法有关
lcf 2013-09-13
  • 打赏
  • 举报
回复
引用 17 楼 jaffy 的回复:
[quote=引用 12 楼 lcf 的回复:] 模块化,利用Builder和Abstract Factory模式,根据配置文件加减不同的功能,或者同一类功能的不同版本,尽量不要在运行的模块里面做很多判断,这样会影响效率,大大降低可读性,也就让代码难以维护了
其实,这种问题我觉得应该很常见,现在这个项目是个老项目了,卖过很多家。 之前也没做太多抽象控制,都是客户的需求驱动后,就直接加功能了,久而久之就到了今天的情况。 你说推倒重来似乎不现实,但优化能达到多少效果也无法预知,真是个棘手的事情啊![/quote] 如果中毒太深,只能砍掉重练了。你们应该分出一两个人,专门做这个项目的重构,其他人继续维护老代码。过得一年半载,就舒坦了。如果总是打补丁,肯定越来越糟 事实上,几个if并不会怎么影响代码效率,只是如果你的程序结构不好,会无谓地占用不需要的资源,比如某个功能没有用到,却仍然去初始化了它。占用资源就意味着更多内存,也许会导致更频繁的GC,从而带来效率问题。当务之急是代码重构,越快越好,期间测试必须跟上,这不是一个简单的任务。加油吧,少年!
jaffy 2013-09-13
  • 打赏
  • 举报
回复
引用 12 楼 lcf 的回复:
模块化,利用Builder和Abstract Factory模式,根据配置文件加减不同的功能,或者同一类功能的不同版本,尽量不要在运行的模块里面做很多判断,这样会影响效率,大大降低可读性,也就让代码难以维护了
其实,这种问题我觉得应该很常见,现在这个项目是个老项目了,卖过很多家。 之前也没做太多抽象控制,都是客户的需求驱动后,就直接加功能了,久而久之就到了今天的情况。 你说推倒重来似乎不现实,但优化能达到多少效果也无法预知,真是个棘手的事情啊!
jaffy 2013-09-13
  • 打赏
  • 举报
回复
或者这样说,比如我们现在的程序,本来有个很大的frame,这个frame中有很多线程及对象,但新的需求又建立了一个新的FRAME,要包含老FRAME中的部分线程和对象,但为了兼容处理,方便后期配置,干脆两个都建立,另一个FRAME不显示,但被新的FRAME调用,从效率上来讲,的确是多了个FRAME的建立啊;难道这也不消耗资源吗?
wasdasdfqwer 2013-09-13
  • 打赏
  • 举报
回复
引用 3 楼 crazypandariy 的回复:
个人感觉影响程序速度主要是IO操作(例如数据库操作,读取文件),算法(排序之类的),算法好坏影响也不小。本人测试过冒泡排序和希尔排序,3000W纯数字数组,进行排序,希尔排序<10s,但是冒泡10min没跑出来,强行终止掉了。 优化:减少文件读写,优化sql语句,优化算法,大数据量考虑分批处理。
感觉差不多就这样,几行冗余代码根本没什么影响,主要是几行代码是不是算法的优化
颠覆Lucosax 2013-09-13
  • 打赏
  • 举报
回复
处理速度和报的多少没什么关系吧,而且执行速度和代码简洁与否没关,甚至代码越简单执行速度反而慢一些,比方说汇编语言,或者是最原始的01代码运行速度那个相当的快啊
风梦月 2013-09-13
  • 打赏
  • 举报
回复
删包删代码对运行效率没半点提高,最多减少一点启动速度而已。
编程点滴 2013-09-12
  • 打赏
  • 举报
回复
可以这么说,与代码量的多少无关,主要那些没用的代码没有运行到就不用管太多,去掉了性能也不会见得好起来,还有可以出错,建议不要去掉
Inhibitory 2013-09-12
  • 打赏
  • 举报
回复
程序的速度从一定程序上来说与代码量的大小无关,例如一个只有一行代码的死循环,想象一下是什么样子。
healer_kx 2013-09-12
  • 打赏
  • 举报
回复
你觉得我一个for循环,没有break的条件,能跑多久。。。我这个依赖少。代码就三行。
lcf 2013-09-12
  • 打赏
  • 举报
回复
模块化,利用Builder和Abstract Factory模式,根据配置文件加减不同的功能,或者同一类功能的不同版本,尽量不要在运行的模块里面做很多判断,这样会影响效率,大大降低可读性,也就让代码难以维护了
william_yao 2013-09-12
  • 打赏
  • 举报
回复
我也觉得你那些多余代码去掉,真心快不了多少。删代码带来的操作还容易引起很多位置BUG,得不偿失。 还是优化下核心算法比较来的快,也好实施。
异常异长 2013-09-12
  • 打赏
  • 举报
回复
应该在算法 和数据操作上优化
浮缈 2013-09-12
  • 打赏
  • 举报
回复
引用 3 楼 crazypandariy 的回复:
个人感觉影响程序速度主要是IO操作(例如数据库操作,读取文件),算法(排序之类的),算法好坏影响也不小。本人测试过冒泡排序和希尔排序,3000W纯数字数组,进行排序,希尔排序<10s,但是冒泡10min没跑出来,强行终止掉了。 优化:减少文件读写,优化sql语句,优化算法,大数据量考虑分批处理。
确实系统优化 应该从下面这些方向来。减少冗余代码的方法不靠谱。
无聊找乐 2013-09-11
  • 打赏
  • 举报
回复
跟代码量多,依赖多比一下
zqfddqr 2013-09-11
  • 打赏
  • 举报
回复
引用 2 楼 rumlee 的回复:
把不需要的代码去掉,对性能的提高基本上是可以忽略不计的。而且万一弄的不好还会出问题,毕竟大范围改动这种代码难免不出bug。 建议还是要从这个客户需要用到的算法、数据库设计等地方进行优化。
嗯同意 这种改了又改的除非推翻从来 不然最好别删东西
末日哥 2013-09-11
  • 打赏
  • 举报
回复
感觉去不去对效率影响不大,对用到的代码做下优化还好
bayougeng 2013-09-11
  • 打赏
  • 举报
回复
jar在你的project里,不见得就一定会load,所以,去掉可能没多大意义。 但是重构成plug-in结构,会不会工作量又太大了?
可乐罐 2013-09-11
  • 打赏
  • 举报
回复
修剪冗余的代码和类,能起到的作用基本上就是应用启动时对类引入所需的资源多,时间长点。
对程序的运行效率应该没多大帮助。
加载更多回复(3)

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧