(1)JVM + one VM :
JAVA 是架构在 JVM 上面执行,而JVM又是架构在另一个 VM (ex : Microsoft OS)上面, 若认为Java 的速度比较慢, 这样比较是不太正确的.
很多书籍或是技术文章, 都有提到.
但事实上 :
我常看到的是, 当另一个VM的环境(此 OS 所在的 Server)并不干净的时候, 常会相对地影响 Java application执行的速度, 大部份认为Java 的速度比较慢的人并未看到这点, 或不想讨论这点.
(2)架构正确的project vs 层叠架构的project :
若是架构正确的project架构, JSP 或 JAVA Application 的执行速率可以很快的; 反之,层叠架构的project常会搞垮一切。
检验 层叠架构的project 的方式有许多种, 我还有许多还没学到的,不过我在三年前用过一种方式, 很好用.
试着将层叠架构的 project 中的某个简单的功能独立出来成为一个干净的 Project,你会发现许多困难。
(PS : JAVA新手 [请勿] 在公司中公开对外尝试, 私底下练习可以, 以免被较资深的人员责备.)
(PS 2: 这只是经验谈, 不涉及任何人和任何JAVA Base Project.)
(3)storeprocedure vs JDBC 的迷思 :
常有人说 storeprocedure 的"速度"较 JDBC SQL Statemenet 快,但我发现只比较后面的执行状况好像也不完整
原因 :
A. storeprocedure 常在开发, 交接, 维护上, 花了许多专案的时间与人力的成本.
B. storeprocedure 也在改版上(例如 : 从 Microsoft 的版本转为 DB2 的版本), 花了许多专案的时间与人力的成本.
C. storeprocedure 常有许多的隐含错误在里面, 在被比较时, 这部份往往被忽略不看, 例如 : 在事务上, 因业务尚未被Online使用, 就没测试得很完整.
这种方式的讨论, 是反映[速度] 与 [速率] 问题上的差异.
(PS : I am not 看不起那些只会下 SQL 指令或是只会写 store procedure 的人, 我只是单纯的反映 Java 效率的問題)
(4) 不熟悉Web Application Container :
再回过来, 比如说, 一些不熟Java架构, 或不熟悉Web Application Container, 常会发生这种状况.
我常看到有些人将 : IBM WebSphere 不知道怎么搞的, 发生CPU的使用率达到100%, 然后回过头來抱怨 Java 执行的速度太慢.
我所列的只是某些真相......