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