首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >java php基准测试

java php基准测试
EN

Stack Overflow用户
提问于 2011-02-11 20:20:10
回答 3查看 12.2K关注 0票数 10

我是一个php开发人员,但最近我不得不为我在学校上的一门课编写两次相同的应用程序,一次用php编写,一次用java编写。出于好奇,我对这两个版本做了一个基准测试,发现如果访问数据库,java版本比php版本慢2到20倍,如果没有DB访问,java版本比php版本慢1到10倍。我看到两个直接可能的可能性:

  1. 我在爪哇很烂。
  2. 我终于可以告诉人们不要再抱怨php了。

我发布了servlet代码这里。我不想要任何挑剔的抱怨或小的改进,但是有人能看到一个可怕的明显的性能问题吗?或者,有人能解释为什么Java觉得它必须糟糕吗?

我经常听到人们说java比php更快、更可伸缩,特别是我的老师,他相信它,但是提出的请求越多,java得到的越慢。php似乎不受负载增加的影响,但保持不变。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-11 21:40:01

在成熟的Java应用程序中,Servlet将使用现有的JDBC连接池。建立一个新的连接将是迄今为止你所付出的最大代价。

每次尝试连接时调用Class.forName也会导致不必要的减速。

JVM优化也可能是一个因素。在企业环境中,JVM、内存以及可能的GC配置将进行调整和调优,以在响应性和资源利用率之间实现理想的平衡。

正如Stephen所指出的,JVM也有一种“热身”的概念。

尽管如此,我不知道PHP如何与Java相比较,我觉得这两种语言都为分离不相交的需求提供了很好的解决方案。

票数 6
EN

Stack Overflow用户

发布于 2011-02-11 20:58:29

基于不多的信息(做出最佳决策的地方),我猜Class.forName("com.mysql.jdbc.Driver"); in getConnection()是一个大的时间链接。

new String可以传递给out.println时,在importFile中创建char[]是我的挑剔之处。

票数 1
EN

Stack Overflow用户

发布于 2011-02-11 20:43:51

您的测试似乎反映了初始开销比稳态性能更高。尝试在一个循环中多次执行非DB测试(这样每个测试都会多次运行代码),并查看运行时与迭代次数之间的线性关系。我怀疑java的增量成本低于php。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4976295

复制
相关文章
函数模板与同名的非模板函数不可以重载(重载的定义)
关于函数的重载机制,是一个比较复杂的问题,其中涉及到了优先级定义和最佳匹配等问题,如果要阐述清楚,恐怕不是一两篇文章就能说的明白。但是如果掌握了一些常用的“规律”,对于了解程序对重载函数是如何进行选择也有很大的好处,本文尝试将自己理解的知识,结合下面简单的例子简略的说说函数重载机制,文章的摘录部分列出了一些关于程序如何选择重载函数的规则。: )
全栈程序员站长
2022/07/26
8780
一个代替DATEDIF函数的自定义函数
大家知道,DATEDIF函数虽然可用,但已不在Excel插入函数可搜索的范围内了。
fanjy
2021/12/29
1.3K0
【R语言经典实例8】如何定义一个R函数。
使用关键字function,并在其后跟随函数参数列表和函数主体。其基本形式如下: function(param1, ...., paramN) expr
统计学家
2019/04/10
3K0
浅谈如何定义和调用Python的函数
本文主要介绍了如何定义和调用Python函数。首先介绍了函数的概念和作用,然后详细讲解了如何定义函数和调用函数,最后列举了一个例子来加深理解。
企鹅号小编
2018/01/03
2K0
浅谈如何定义和调用Python的函数
如何度量一个软件的非功能需求?
  非功能需求,指软件产品为满足业务需求而必须具有的,且除功能需求以外的特性。非功能用户需求是描述软件如何实现功能而不是具备什么功能。非功能特性包括产品必须具备的质量属性和必须遵守的约束。例如:软件性能需求、软件安全性需求、软件可用性需求等。   相对于功能规模,非功能需求的规模更加难以度量。为了有效评估非功能规模对于项目资源代价的影响,行业内通常有两类处理方式:宏观方式和微观方式。宏观方式即不对非功能规模直接度量,而是以功能规模为基础,通过对基准数据的细分,确定特定类型软件的软件因素调整因子,进而估算项目所需的工作量、成本、工期,通过此种方式估算的结果,已包含此类软件通常所涉及的非功能要求对于项目资源的影响;微观方式则是对非功能规模直接度量,一般采用两种方式,一是可以通过对功能点方法进行定制,定量评估非功能规模。例如,在金融行业,由于性能等方面的考虑,大量账务处理是通过后台批量程序定时完成的,通过对功能点方法适当定制,可以有效地对此类需求进行规模度量;二是引入专用的非功能规模度量方法(如SNAP),此类方法针对非功能规模提出了明确的评估规则,但由于方法产生较晚,相关行业实践及数据较少,在实际应用时,还需要开展相关分析工作,以保证和功能规模数据有效结合,进而获得准确的估算结果。
软件成本造价评估
2018/10/17
9790
如何度量一个软件的非功能需求?
Vue中如何定义全局函数
就是以一个特定模块来组织管理这些全局量,需要引用的地方导入该模块便好。 全局变量专用模块 Global.vue
李维亮
2021/07/08
1K0
Java 定义一个日志的时候应该如何定义
同时,你可以定义变量 log 来替代 logger,这样能够减少输入的字符数。当然这个也需要根据你的项目要求来定了。
HoneyMoose
2020/02/27
4040
Java 定义一个日志的时候应该如何定义
同时,你可以定义变量 log 来替代 logger,这样能够减少输入的字符数。当然这个也需要根据你的项目要求来定了。
HoneyMoose
2020/02/25
5150
如何通俗的理解函数的极限_不理解函数极限的定义![通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。 极限定义里,为什么用“存在”“任意”“不等式”的数学语言来定义极限?怎样将普通语… 楼主的问题显然是有备而来,是经过严格逻辑分析后有感而发的问题。确确实实,我
全栈程序员站长
2022/08/31
7910
论如何制作一个网站(非静态)
在初三的寒假,我在各位大佬的帮助下,建立了一个静态的网站(www.gaoice.cf)(但没过几天因为开学面临这中考备考的任务,没时间管理),不过我并不知足,因为那个网站除了发文章,没有其他功能
冰漪叶
2022/10/24
1.1K0
Casbin如何添加自定义函数
官方:https://casbin.org/docs/zh-CN/function
Tinywan
2023/03/08
9340
Casbin如何添加自定义函数
定义一个创造汽车的函数来实现分类
# 定义奔驰车类 class BenchiCar(object): # 定义车的方法 def move(self): print('---奔驰车在移动---') def stop(self): print('---奔驰车停车了---') # 定义宝马车类 class BMWCar(object): # 定义车的方法 def move(self): print('---宝马车在移动---') def stop(
汪凡
2018/05/29
3870
如何用matlab编写分段函数_请教各位怎样用matlab定义一个分段函数MATLAB分段函数…[通俗易懂]
20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市场。到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。
全栈程序员站长
2022/09/01
2.5K0
如何编写一个通用的函数?
C++中模板的作用是支持泛型编程。==泛型编程=是一种编程范式,它只考虑算法或数据结构的抽象,而不考虑具体的数据类型。通过使用模板,可以编写一种通用的算法或数据结构,而不需要为每种数据类型都编写一遍相关代码。模板可以用于函数、类、结构体等地方,以实现通用的算法和数据结构。使用模板可以提高代码的复用性和可读性,减少代码的重复编写。
初阶牛
2023/10/14
1910
如何编写一个通用的函数?
自定义一个 Date 处理函数
package com.ht.core.web; import java.text.SimpleDateFormat; import java.util.Date; /** * * @author: SHF * @date: 2017年11月21日 上午10:38:01 * @Description: 返回一个时间戳 * 自定一个日期处理类 * return: 返回当前日期加时间的STRING 格式:20170101202334 */ public class DateTimeT
用户5927264
2019/07/31
5570
JavaScript 函数的定义
JavaScript函数是指一个特定代码块,可能包含多条语句,可以通过名字来供其他语句调用以执行函数包含的代码语句。
WEBING
2019/02/26
1.1K0
JavaScript 函数的定义
Python 函数的定义
函数的定义 函数的定义 将一件事情的步骤封装在一起并得到的结果 函数名代表了这个函数要做的事情 函数体是实现函数功能的流程 方法或功能 函数可以帮助我们重复使用,通过函数名我们可以知道函数的作用 函数的分类 内置函数 自定义函数 函数的创建方法 关键词def的功能 实现python中函数的创建 通过def定义函数 def name(args...): todo something.. 返回值 #函数名 + 小括号执行函数 函数的返回值return 将函数结果返回的关键字 return只能在
Zkeq
2022/05/18
7080
【C++】函数重载 ④ ( 函数指针定义的三种方式 | 直接定义函数指针 | 通过 函数类型 定义 函数指针 | 通过 函数指针类型 定义 函数指针 )
先定义一个函数 , 在本章节中使用不同的方法 , 定义该函数 对应 的 函数指针 ;
韩曙亮
2023/10/15
1880
【C++】函数重载 ④ ( 函数指针定义的三种方式 | 直接定义函数指针 | 通过 函数类型 定义 函数指针 | 通过 函数指针类型 定义 函数指针 )
【C++】函数重载 ④ ( 函数指针定义的三种方式 | 直接定义函数指针 | 通过 函数类型 定义 函数指针 | 通过 函数指针类型 定义 函数指针 )
先定义一个函数 , 在本章节中使用不同的方法 , 定义该函数 对应 的 函数指针 ;
韩曙亮
2023/10/15
2000
【C++】函数重载 ④ ( 函数指针定义的三种方式 | 直接定义函数指针 | 通过 函数类型 定义 函数指针 | 通过 函数指针类型 定义 函数指针 )
点击加载更多

相似问题

查询多个条件

21

查询多个条件

32

使用Sqlite的多个查询条件

12

使用多个where条件进行查询

212

使用多个like条件选择查询

50
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文