`
lgx522
  • 浏览: 126103 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

硬件越跑越快,软件越陷越慢

    博客分类:
  • Java
 
阅读更多
近日总算有点空闲,走马观花测试了一些技术,包括Grails、Seam、AOM、Python、ZendFramework、CakePHP、Flex、WPF等等,回到JE看了一些讨论,忍不住又要放点黄腔了。

自从多核CPU成为PC标配以后,硬件又上了好大一个台阶。到朋友家看了一下“孤岛危机”,实在是超级惊艳。单位上也终于耗上了一台双核、2G内存,这下跑什么IDE和AppServer都不用去小歇片刻了,真是感谢硬件产商们的努力。

某天看了一篇文章,地址记不清了,却道出了应用程序的本质:“不过就是在数据库里读读写写”,这下便像吃了苍蝇般不爽了起来。搞腾这个行当转眼也七、八年了,回头一想,的确是该反省反省了。

好几年前,更换电脑似乎总是为游戏而换。越来越清晰、越来越眩目、越来越震撼,且不论游戏好不好玩,单声光效果的提高都物有所值。那时候的应用程序其实要求是不高的,VB、Delphi、ASP、PHP这些老革命的IDE和作品,至今可以在怀旧的时候,拿到奔腾166的老机器上去跑一跑,丝毫不见慢。所以那时候更换电脑是与App无关了。

Java引领的虚拟机时代让笔者一度迷了五六年,曾经笔者一度天真地以为只要全面进入虚拟机和中间件时代就可以解决企业应用软件的种种问题,达到高度的业务逻辑重用、高度的异构集成、高度的安全性与伸缩性。这其间折腾的技术、框架加起来怎么也有几十种了,时光飞逝,转眼三十老几了,回头一想,当初的信仰很傻很天真,到头来“不过就是在数据库里读读写写”,最可笑的不过是越来越复杂、越来越慢。看来这些年是陪Sun、IBM、Microsoft以及开源领域的大牛们玩过去了。

由于是在单位上混,出于饭碗的需要,几年来不得不参加了当初以为“不切实际”的软考,一直混到系统分析师。回头看下来,这些个“不切实际”的学究体系其实反倒有些有用处。硬着头皮大体上啃了一遍学究知识,最后才搞明白程序要快要稳定,还是要搞清楚CPU、内存和硬盘;而所谓的可靠性、重用性、扩展性、...XX性,不是靠什么具体的软件技术,而是在于规范的管理与审慎的规划。

缘木求鱼,这就是国内软件业超级混乱的根源。根子上在于我们想偷懒的惰性,明明是我们该自己去思考、去设计、去解决的问题,我们不断地迷信可以依靠“大腕”、“大牛”们来解决。其实连伟大的党都承认了,“没有放之四海而皆准的真理”,何况是软件这种由人造、由人用的事物。结果如何,“大腕”、“大牛”们出于各种各样的目的,不断制造混乱。而我们,正是那随波逐流混水中的泥。

虚拟机时代到来了,动态语言时代到来了,SOA时代到来了,XXX时代到来了,无数吹鼓手吹起了喇叭,震耳欲聋。大家昏头昏脑跳进大大小小的池塘,一边陷下去,一边互相嘲笑、互相鄙视、互相谩骂。好一个热闹的软件大超市。

吹嘘有何用,迷信有何用?最终,还是要抓住硬件这根救人的稻草。
分享到:
评论
17 楼 icewubin 2008-05-07  
lgx522 写道
tedeyang 写道
无语
楼主还是去用C吧。
既然是做应用级软件,那就要有做应用级软件的觉悟。
看来楼主不是科班出身的。


惭愧得很,本人的确不是科班出身的。
应用软件,基本上就没有用C的。
这篇文章要说有对比,也是对比虚拟机技术与之前的RAD。
就算是对比同样的Java Web,大家也可以回想一下开初的jdbc+servlet+jsp开发速度与运行效率有多高;可自从Java界随时随处framework、ORM、Ioc、AOP等等之后,Java的确逐渐“输掉了Web之战”,这是教训。


有吗?为什么你会认为用了framework、ORM、Ioc、AOP就会严重降低,我这里说了是“严重”,慢是慢一点,但是在整个运行时的体系中,这样的慢是可以忽略的,牵涉到优化理论了,打住。

但是我说的慢是是一些固有的慢,比如反射的开销,而且随着JVM的进步,这些开销也在改善,JDK1.4的反射就要比1.2的速度快很多。

但是绝大多数的时候,这个“慢”是使用不当造成的,而不是这些技术带来的,当然大家可说,这些技术的带来了更多的学习成本。
16 楼 cocal 2008-05-07  
IT产业缺乏去芜存菁的机制,最起码国内产业缺乏这个。看似热闹非凡,你方唱罢我登场,但反思一下,其实大家无非是跟在吹鼓手后面,热闹的走过去,又转回来,反反复复,人生就这么过去了。

自我总结这么多年,从精神到实践上,个人积累的东西确实太少了。
因此支持LZ的观点。
15 楼 phlsbg 2008-05-07  
大公司不吹嘘XXX好怎么卖出呀
厂商不吹嘘XXX好怎么骗客户呀
程序不吹嘘XXX好怎么能显示他有本事呀

  踏踏实实掌握好DB、SQL和业务管理才是正道。90%的软件都是做业务的,DB、SQL是解决这类问题的最好工具。
14 楼 ufinity 2008-05-07  
lgx522 写道
jjx 写道
这不是迷不迷惑的问题,是大势所趋的问题

像桌面开发,虽然vb6,delphi运行速度会快些,但你还会用吗?如果同时用,维护成本有多高

有时开发者被放到一个无奈的境地。 ms说今年夏天会出补丁会大大提高.net 桌面的启动性能,就等着看了


大势所趋,趋的就是开发者和用户不断重复西西费斯的推石悲剧。

不论vb、delphi,还是java、.net,或者是php、asp,甚至是C,写得好的维护起来都很方便,写得臭的几乎都没法维护。重复一遍,这不是具体技术体系的问题,而是管理、规划与设计的问题。不论是MS、Sun、IBM,还是开源大牛,都没法代替我们认真思考和规划应用程序。

说点实在的,在这个浑水缸里,踏踏实实掌握好DB、SQL和业务管理才是正道。

楼主这话说的太对了。。同感!!!
13 楼 lgx522 2008-05-07  
jjx 写道
这不是迷不迷惑的问题,是大势所趋的问题

像桌面开发,虽然vb6,delphi运行速度会快些,但你还会用吗?如果同时用,维护成本有多高

有时开发者被放到一个无奈的境地。 ms说今年夏天会出补丁会大大提高.net 桌面的启动性能,就等着看了


大势所趋,趋的就是开发者和用户不断重复西西费斯的推石悲剧。

不论vb、delphi,还是java、.net,或者是php、asp,甚至是C,写得好的维护起来都很方便,写得臭的几乎都没法维护。重复一遍,这不是具体技术体系的问题,而是管理、规划与设计的问题。不论是MS、Sun、IBM,还是开源大牛,都没法代替我们认真思考和规划应用程序。

说点实在的,在这个浑水缸里,踏踏实实掌握好DB、SQL和业务管理才是正道。
12 楼 jjx 2008-05-07  
这不是迷不迷惑的问题,是大势所趋的问题

像桌面开发,虽然vb6,delphi运行速度会快些,但你还会用吗?如果同时用,维护成本有多高

有时开发者被放到一个无奈的境地。 ms说今年夏天会出补丁会大大提高.net 桌面的启动性能,就等着看了
11 楼 metaphy 2008-05-07  
能够保持清醒的大脑
不被眼花缭乱的词汇迷惑
这就是从业的素质要求之一
10 楼 lgx522 2008-05-07  
mathgl 写道
用C作业务不是没有。
我的同事做农发行的业务就是用C写业务处理的

java仅仅作为前端界面而已


那些是属于高端应用了,运行速度要求很高,肯定得用C。很多海量访问的网站,性能要求高的部分模块也是如此做的。
9 楼 xianhe 2008-05-07  
tedeyang 写道
无语
楼主还是去用C吧。
既然是做应用级软件,那就要有做应用级软件的觉悟。
看来楼主不是科班出身的。

其实计算机专业科班的门槛很低,除了离散数学,其他的都没有什么.软件工程只不过吸收了加工业和建筑业的经验,软件从业人员奉为圣经的UML不过是软件工程大师们希望能实现想机械图纸的功能."过程决定质量"也是从日本的加工制造业发展中得到经验,"设计模式"是建筑业的经验.说实话,计算机专业真的没有什么.
8 楼 mathgl 2008-05-07  
用C作业务不是没有。
我的同事做农发行的业务就是用C写业务处理的

java仅仅作为前端界面而已
7 楼 lgx522 2008-05-07  
balan 写道
很多软件新技术的出现,初衷并不是运行的更快,而是开发的更快,响应需求变化更快,扩展和维护更快。


做软件,最终目的是要开发得快、维护得快、运行得快。做出来的系统费了比别人多几倍的时间,硬件费了几倍的钱,最后还比别人跑得慢,维护起来要折腾好几个弯弯,再多的大词也只能自欺欺人。
本人其实正是这些大词的迷信者,折腾了几年才知道是怎么回事。

说点闲话,JE的很多牛人为何都倒戈RoR,这已经是耐人寻味了。
本人RoR实践了半年,说句实话,除了性能,什么都好。但这一缺点,对于以写为主的企业应用基本上可以毙了。
6 楼 lgx522 2008-05-07  
tedeyang 写道
无语
楼主还是去用C吧。
既然是做应用级软件,那就要有做应用级软件的觉悟。
看来楼主不是科班出身的。


惭愧得很,本人的确不是科班出身的。
应用软件,基本上就没有用C的。
这篇文章要说有对比,也是对比虚拟机技术与之前的RAD。
就算是对比同样的Java Web,大家也可以回想一下开初的jdbc+servlet+jsp开发速度与运行效率有多高;可自从Java界随时随处framework、ORM、Ioc、AOP等等之后,Java的确逐渐“输掉了Web之战”,这是教训。
5 楼 balan 2008-05-07  
很多软件新技术的出现,初衷并不是运行的更快,而是开发的更快,响应需求变化更快,扩展和维护更快。
4 楼 tedeyang 2008-05-06  
无语
楼主还是去用C吧。
既然是做应用级软件,那就要有做应用级软件的觉悟。
看来楼主不是科班出身的。
3 楼 jjx 2008-05-06  
是有点郁闷,有时为了快,反而又失去了部署的方便性

比方说.net windows forms的ngen,gac. 或是将复杂耗时的任务移出到中间层用分层访问

每个客户我事先必须说明,这程序需要在目前的主流机器上跑,但通常,无法阻止客户将其安装到老电脑上。然后对我抱怨说,这程序怎么比老程序(通常是vb6的)还要慢

2 楼 liusong1111 2008-05-06  
引用
虚拟机时代到来了,动态语言时代到来了,SOA时代到来了,XXX时代到来了,无数吹鼓手吹起了喇叭,震耳欲聋。大家昏头昏脑跳进大大小小的池塘,一边陷下去,一边互相嘲笑、互相鄙视、互相谩骂。好一个热闹的软件大超市。

吹嘘有何用,迷信有何用?最终,还是要抓住硬件这根救人的稻草。


有些时候,不论别人说它好不好,自己用着爽不爽,都不愿说出来,因为有很大的可能被笑话成浅见无知。
喇叭队伍强的,你对着吹就是找K;
喇叭队伍弱的,你顺着吹不见得能把它吹强,对着吹反而能把自己捧起来;

外围设施的发展,确实十分影响软件的发展方向,对这方面越来越有体会。
大的如网络、多核、移动设备等,一个设施的飞跃,可能促成萌发多个技术领域、行业、商业模式,一个基础设施的裹足不前,也会萌发一些诸如古老理论的回归等活动,并大大影响某些前瞻性技术的进度。

小的方面如显示器分辨率上的提升,都可能影响产品设计最终反映到软件开发上。
1 楼 mimijidi 2008-05-06  
跟"连城诀"的结尾很相似啊,呵呵
大家盲目了疯了。。

相关推荐

    计算机组成原理:硬件软件接口 原书第5版课后答案

     增加“运行更快”这一新实例,说明正确理解硬件技术的重要性,它能使软件性能提高200倍。  讨论并强调计算机体系结构的“8个伟大思想”——通过并行提高性能、通过流水线提高性能、通过预测 提高性能、面向摩尔...

    嵌入式系统 硬件与软件架构

    第三部分是关于嵌入式软件的介绍,包括设备驱动、操作系统及中间件和应用软件;第四部分介绍了嵌入式系统的设计与开发。此外,书中还包括大量图和计算机代码,帮助读者理解嵌入式系统的理论知识。

    平台硬件和系统软件部署方案V1.1.docx

    "平台硬件和系统软件部署方案V1.1" 本资源是某网公司的某系统硬件和系统软件部署方案的详细指导文档,旨在帮助相关人员了解该系统的硬件和软件部署要求,确保系统的稳定运行和高效运作。 硬件部署 在该方案中,...

    黑苹果硬件兼容检测和查询软件

    "黑苹果硬件兼容检测和查询软件"是一款专为想要在非苹果硬件上安装MAC OS(又称黑苹果,Black macOS)的用户设计的工具。这款软件的主要功能是评估个人计算机(PC)的硬件配置,判断其是否能够支持苹果操作系统,...

    计算机组成与设计:硬件软件接口教材+习题答案 中文第5版

    《计算机组成与设计:硬件/软件接口(原书第5版)》是计算机组成与设计的经典畅销教材,第5版经过全面更新,关注后PC时代发生在计算机体系结构领域的革命性变革——从单核处理器到多核微处理器,从串行到并行。...

    解决keras backend 越跑越慢问题

    总之,遇到Keras后台运行速度变慢的问题时,可以通过复用计算图、优化模型结构、选择合适的优化器以及调整硬件配置等方式来提升性能。同时,对比不同框架的性能可以帮助我们选择更适合的工具来完成特定任务。

    Delphi读取电脑硬件信息及安装软件列表

    在IT领域,开发人员经常需要获取计算机的硬件信息和已安装软件列表,以便进行系统监控、故障排查或软件管理。Delphi是一款强大的Object Pascal集成开发环境,它提供了丰富的API和库来实现这样的功能。以下是对如何...

    计算机组成与设计硬件软件接口risc-v中文.pdf

    计算机组成与设计硬件软件接口risc-v中文版

    QN8035硬件与软件设计指南

    QN8035 嵌入式设计驱动程序(C/C++) PCB布板规范 硬件原理 QN8035 API for MCU QN8035 clean API V1.0 20100223 FMR设计指南.doc QN8035 Hardware Application Note Version 0.3-20100226.pdf QN8035-MSOP 参考设计v...

    计算机组成原理:硬件软件接口(第五版)答案

    《计算机组成原理:硬件软件接口》是David A. Patterson教授的经典著作,该书详细阐述了计算机硬件与软件之间的交互机制,是理解计算机系统基础的重要教材。第五版在前四版的基础上进行了更新和完善,以适应现代...

    牛B硬件信息修改大师-一键修改电脑所有信息

    这个软件工具的主要功能是让用户能够方便快捷地更改他们的计算机硬件信息。在IT行业中,硬件信息修改可能涉及到多个方面,包括但不限于CPU型号、内存容量、硬盘型号、显卡信息等。这样的工具通常用于测试、调试或...

    计算机组成与设计 硬件软件接口第三版中文 pdf(part1)

    计算机组成与设计 硬件软件接口第三版中文 pdf(part1) part1 中文 计算机 组成与设计 硬件软件接口

    计算机组成与设计硬件软件接口 (中文版详细书签)原书第5版

    计算机组成与设计硬件软件接口 (中文版详细书签)原书第5版

    计算机组成与设计硬件软件接口(英文版第4版ARM版)经典教材

    计算机组成与设计硬件软件接口(英文版第4版ARM版)经典教材 Computer Organization and Design ,The Hardware Software Interface 4e,ARM edition,2009

    机器码修改工具-硬件信息虚拟工具

    VirtualHardwares并不是真正的修改,而是虚拟修改,您重启计算机后将恢复到原始计算机状态,不会对您的硬件和软件造成任何影响。VirtualHardwares内置了查询硬件信息和随机生成硬件信息,用户不需要任何专业知识,...

    彩虹UDA软件狗工具带硬复制工具

    原则上您调用、设置的加密接口越多将更有利于阻止潜在破坏您的软件保护。 加密方案二:使用外壳工具 使用外壳工具对软件保护是一种快速、简单的保护方案。它不象使用接口函数需要对源代码进行改动,而是自动给您...

    中兴软件及硬件面试题.

    中兴软件及硬件面试题.中兴软件及硬件面试题.

    (新)计算机的硬件与软件(初中教案).pdf

    CPU的速度通常以时钟频率衡量,单位为GHz,频率越高,计算速度越快。此外,CPU的二级缓存也影响性能。 - **存储器**:分为主存储器(内存)和辅助存储器(如硬盘)。内存提供快速访问,但容量小且易失;辅助存储器...

    获取机器硬件特征码!!!!!

    例如,某些专业软件会将硬件特征码与许可证密钥绑定,只有当设备的硬件特征码与激活时一致时,软件才能正常运行。此外,在云服务和虚拟化环境中,硬件特征码也用于识别和隔离虚拟机,防止非法克隆。 然而,获取硬件...

    硬件设计方案模板

    《硬件设计方案模板详解》 硬件设计方案是任何电子产品或系统开发过程中的关键环节,它为产品的构建提供了基础蓝图。本文将详细解析硬件设计方案模板,帮助读者理解如何有效地进行硬件设计。 一、产品概述 在硬件...

Global site tag (gtag.js) - Google Analytics