Web应用中Java的速度真相探讨

web|速度

(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 执行的速度太慢.

我所列的只是某些真相......

时间: 2024-11-01 18:40:08

Web应用中Java的速度真相探讨的相关文章

在Eclipse的Web项目中java里面使用ant进行数字签名步骤详解

话不多说,我们先建立一个文件build.properties.这个文件是用于配置一些常用的变量的 #public infomodule=testJAVA_HOME=D:/Java/JDK1.6keystore=Yoinn.store# 别名alias=Yoinn# keystore密码storepass=password# 主密码keypass=password# 证书文件名cer.file=NeuLion.cer# dname info# dname {CN=1, OU=1, O=1, L=1

java Web项目中什么场景中会用到java多线程?

问:能不能简单描述一下你在java web开发中需要用到多线程编程的场景? 对多线程有些了解,但是不太清楚具体的应用场景,能简单说一下你遇到的多线程编程的场景吗? 回答一: 最典型的如:1.用户注册完成送大礼包/积分之类,且积分等也是另一个系统并比较耗时:且这类任务即使失败也不是特别重要的.2.后台线程:比如定期执行一些特殊任务,如定期更新配置文件,任务调度(如quartz),一些监控用于定期信息采集等. 回答二: 最典型的应用比如tomcat,tomcat内部采用的就是多线程,上百个客户端访问

java web应用中新起一个线程 在线程中怎么获取系统登录的数据

问题描述 java web应用中新起一个线程 在线程中怎么获取系统登录的数据 java web应用中新起一个线程 在线程中怎么获取系统登录的数据,系统登录用的是Spring Secrity 解决方案 可以使用缓存,自己写一个缓存类.或者使用Redis.

在Java Web应用中如何实现任务有效调度

为何需要任务调度? 在web应用中,大多数任务是以一种"防止用户长时间等待"的方式完成的.在Google搜索这样的例子中,减少等待时间对用户体验来说至关重要.异步任务的一种解决方案是在用户提交后生成一个线程(来处理异步任务),但这也不能解决那些需要以一定时间间隔重复运行任务.或在每天的指定时间运行任务的情况. 让我们从一个数据库报表的例子来看看任务调度能如何帮助改善系统设计.报表可能是错综复杂的,这取决于用户所需数据的种类,以及是否需要从一个或多个数据库收集大量数据.用户可能需要很长时

Java web开发中要是用jdbc连接access数据库,连接url怎么写相对位置

问题描述 Java web开发中要是用jdbc连接access数据库,连接url怎么写相对位置 Java web开发中要是用jdbc连接access数据库,连接url怎么写相对位置,注意这里是jdbc方法连接 而不是jdbc-odbc 例如access数据库就在项目中(project文件夹下) 代码为: try { // 加载jdbc - odbc驱动 Class.forName("com.hxtt.sql.access.AccessDriver"); // 根据url创建连接实例 a

Java Web项目中使用Socket通信多线程、长连接的方法_java

很多时候在javaweb项目中我们需要用到Socket通信来实现功能,在web中使用Socket我们需要建立一个监听程序,在程序启动时,启动socket监听.我们的应用场景是在java项目中,需要外接如一个硬件设备,通过tcp通信,获取设备传上来的数据,并对数据做回应. 先看一下web的监听代码: import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class

java web开发过程中出现的一些诡异问题

最近工作很忙,开发任务很大,遇到的问题也千奇百怪,现总结如下,希望能够帮到各位. (1)设置struts 的默认action.目的是访问http://localhost:8080/shop_goods ,自动跳转到http://localhost:8080/shop_goods/loginInput.action  于是我在struts 配置文件中增加了 Xml代码   <default-action-ref name="loginInput" />    但是始终达不到目

java web项目中jsp页面表单提交给servlet 然后显示空白页面

问题描述 java web项目中jsp页面表单提交给servlet 然后显示空白页面 经检查 servlet没问题 全查可以用 不知道什么原因 求解答 解决方案 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈解决了 解决方案二: jsp页面显示空白

源代码- java web 项目中,如何实现显示的页面带关键字搜索功能

问题描述 java web 项目中,如何实现显示的页面带关键字搜索功能 我有一个关键字表 表结构如下 Id ID 关键字 Keywords 链接 Link 优先级 priority 0 默认 1初级 2中级 3高级 匹配次数 mateCount 0全文匹配 1只为第一个出现的关键字匹配 里面的数据格式为 ID Keywords Link priority mateCount 1 龙投网 http://www.lootou.cn 3 0 2 股票入门 http://www.lootou.cn/gu