由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Java版 - 震惊:java 的矩阵操作比 c++ 快?
相关主题
Java on AIX有人用过Real Time Java吗?
structure in Java??c++熟手如何学习Java直到能够参与开发企业级应用?
迷惑了很久,java 和 c++ 到底谁快?java有没Linq之类的工具?
java的接口runnable这几年Java跟其他语言的差距拉大了。
Sun要开源Java了Java Web Framwork 比较
what's inside an java object?Static就是个混球
Why My Java Program Is So Slow?对于java 自学教材的选择, 请高手指点
语言坑:有没有Java和C#两边都用的java有用论
相关话题的讨论汇总
话题: java话题: c++话题: allsum话题: sys话题: user
进入Java版参与讨论
1 (共1页)
t*****z
发帖数: 812
1
m[2000][2000] x v[2000]性能差这么多,叫c++情何以堪啊。。。
测试环境
AMD Athlon(tm) 64 FX-53 Processor
Memory: 8GB
测试结果
[~]$javac jmatrix.java
[~]$/usr/bin/time -p java jmatrix
java allsum=1.8658666E16
real 27.90
user 26.82
sys 0.17
[~]$g++ cmatrix.cpp
[~]$/usr/bin/time -p ./a.out
c++ allsum=1.86587e+16
real 70.89
user 69.99
sys 0.32
测试代码见
http://ping80life.blogspot.com/2012/01/java-c.html
t*****z
发帖数: 812
2
m[2000][2000] x v[2000]性能差这么多,叫c++情何以堪啊。。。
测试环境
AMD Athlon(tm) 64 FX-53 Processor
Memory: 8GB
测试结果
[~]$javac jmatrix.java
[~]$/usr/bin/time -p java jmatrix
java allsum=1.8658666E16
real 27.90
user 26.82
sys 0.17
[~]$g++ cmatrix.cpp
[~]$/usr/bin/time -p ./a.out
c++ allsum=1.86587e+16
real 70.89
user 69.99
sys 0.32
测试代码见
http://ping80life.blogspot.com/2012/01/java-c.html
s**x
发帖数: 7506
3
别自欺欺人了, java 的效率跟 c++ 根本没法比。
t***a
发帖数: 416
4
不至于。。。楼主这种纯计算型的小程序,差不了多少的
但只要c++实现的别太sb, 编译器别犯傻,java真不太不可能比c++快

【在 s**x 的大作中提到】
: 别自欺欺人了, java 的效率跟 c++ 根本没法比。
s******e
发帖数: 493
5
if you knew java history, you would know that Java was designed for
enterprise application rather than mathematical calculation. that is the
reason why almost nobody uses it for scientific programming.
t***a
发帖数: 416
6
你说的前半段我同意,但1.6之后,纯计算的程序跑起来数据已经很接近了,你可以看
这个算pi的比较。
http://left404.com/2011/12/01/bytecode-v-native/
java在科学计算里的排名我没找到,但我估计c/c++后面也就fortran, java,c#这几个
,用的人也不会太少的

【在 s******e 的大作中提到】
: if you knew java history, you would know that Java was designed for
: enterprise application rather than mathematical calculation. that is the
: reason why almost nobody uses it for scientific programming.

N***m
发帖数: 4460
7
in general, fortran is faster than c

【在 t***a 的大作中提到】
: 你说的前半段我同意,但1.6之后,纯计算的程序跑起来数据已经很接近了,你可以看
: 这个算pi的比较。
: http://left404.com/2011/12/01/bytecode-v-native/
: java在科学计算里的排名我没找到,但我估计c/c++后面也就fortran, java,c#这几个
: ,用的人也不会太少的

z****e
发帖数: 54598
8
一个是这么多年硬件性能的飞跃使得纯粹软件运行速度上的差异越来越小
另外一个是这些年java本身虚拟机软件的优化,也使得这个class执行性能逼近甚至超
过菜鸟们自己写的程序
凡事讲究一个积累,就像汇编跟c一样,结构才是硬道理

【在 t***a 的大作中提到】
: 你说的前半段我同意,但1.6之后,纯计算的程序跑起来数据已经很接近了,你可以看
: 这个算pi的比较。
: http://left404.com/2011/12/01/bytecode-v-native/
: java在科学计算里的排名我没找到,但我估计c/c++后面也就fortran, java,c#这几个
: ,用的人也不会太少的

T****U
发帖数: 3344
9
听有人说,他们做的比较研究,java比c++的执行效率只低10%, 考虑到现在cpu的速度
,这个差别大多数情况都可以忽略或者被其他因素掩盖了。

【在 z****e 的大作中提到】
: 一个是这么多年硬件性能的飞跃使得纯粹软件运行速度上的差异越来越小
: 另外一个是这些年java本身虚拟机软件的优化,也使得这个class执行性能逼近甚至超
: 过菜鸟们自己写的程序
: 凡事讲究一个积累,就像汇编跟c一样,结构才是硬道理

g*****g
发帖数: 34805
10
取决定性作用的从来是类库和legacy code。就算java够快,
port类库和代码也是很大的工作量。所以任何领域是很难
改变开发语言的。只有mobile这样从wm,symbian到ios, android,
你才会看到C++程序员纷纷转行。

【在 T****U 的大作中提到】
: 听有人说,他们做的比较研究,java比c++的执行效率只低10%, 考虑到现在cpu的速度
: ,这个差别大多数情况都可以忽略或者被其他因素掩盖了。

相关主题
what's inside an java object?有人用过Real Time Java吗?
Why My Java Program Is So Slow?c++熟手如何学习Java直到能够参与开发企业级应用?
语言坑:有没有Java和C#两边都用的java有没Linq之类的工具?
进入Java版参与讨论
t***a
发帖数: 416
11
这我信,fortran编译器可是盯着矩阵乘法这类东西猛做优化的。。。。

【在 N***m 的大作中提到】
: in general, fortran is faster than c
s********r
发帖数: 55
12
同一个程序我用Fortran写过,gfortran 和ifort 都编译过
Fortran比C慢不少,有接近10倍的速度差

【在 N***m 的大作中提到】
: in general, fortran is faster than c
a***n
发帖数: 538
13
g++ -O3以后呢?
s*****u
发帖数: 164
14
$ javac jmatrix.java
$ time -p java jmatrix
java allsum=1.8658666E16
real 32.97
user 32.46
sys 0.23
$ g++ -O3 -arch x86_64 cmatrix.cpp
$ time -p ./a.out
c++ allsum=1.86587e+16
real 16.48
user 16.17
sys 0.10
G*F
发帖数: 427
15
比矩阵速度的话用matlab做基准就可以了,没matlab的话用python加MKL enabled的
numpy也可以np.dot(A, B)
不过java或c++真是很少用在数值计算上。前段时间我要算的一个11K*350K的矩阵,来
个A * A',要是用楼主那样用loop来算,那得算到哪年去啊。
g*****g
发帖数: 34805
16
try java -server

【在 s*****u 的大作中提到】
: $ javac jmatrix.java
: $ time -p java jmatrix
: java allsum=1.8658666E16
: real 32.97
: user 32.46
: sys 0.23
: $ g++ -O3 -arch x86_64 cmatrix.cpp
: $ time -p ./a.out
: c++ allsum=1.86587e+16
: real 16.48

b******y
发帖数: 9224
17
其实早就有说法,java的某些array操作比c++快。
r******n
发帖数: 4522
18
hotspot JVM带动态优化,你如果能根据硬件手动优化C++编译,最后结果还是C++快,
但这种纯运算差距不会太大。关键大多数人不会去手动优化C++, 也未必事先知道将来
deploy的硬件平台,这样JVM就有优势。速度只是一项指标,如果考虑其它资源,内存
啥的JVM肯定不如C++高效。你要是用-server跑Java会发现更快,当然内存也用得更多。
a***n
发帖数: 538
19
我也试了一下,发现java用180%的cpu。难道是自动并行了?
n*******0
发帖数: 2002
20
扯淡。你要是真想test jit编译器的性能就-Xcomp,看看能快成啥样。

【在 b******y 的大作中提到】
: 其实早就有说法,java的某些array操作比c++快。
相关主题
这几年Java跟其他语言的差距拉大了。对于java 自学教材的选择, 请高手指点
Java Web Framwork 比较java有用论
Static就是个混球菜鸟问题一问
进入Java版参与讨论
o*****n
发帖数: 94
21
正解

【在 G*F 的大作中提到】
: 比矩阵速度的话用matlab做基准就可以了,没matlab的话用python加MKL enabled的
: numpy也可以np.dot(A, B)
: 不过java或c++真是很少用在数值计算上。前段时间我要算的一个11K*350K的矩阵,来
: 个A * A',要是用楼主那样用loop来算,那得算到哪年去啊。

S****h
发帖数: 558
22
The default garbage collector in hotspot jvm is in the different thread. So
yes, in that sense, java automatically does some parallel.

【在 a***n 的大作中提到】
: 我也试了一下,发现java用180%的cpu。难道是自动并行了?
m****u
发帖数: 3915
23
这个time测得不准吧
C***U
发帖数: 2406
24
用blocking的办法能加快速度
不要直接去算

【在 G*F 的大作中提到】
: 比矩阵速度的话用matlab做基准就可以了,没matlab的话用python加MKL enabled的
: numpy也可以np.dot(A, B)
: 不过java或c++真是很少用在数值计算上。前段时间我要算的一个11K*350K的矩阵,来
: 个A * A',要是用楼主那样用loop来算,那得算到哪年去啊。

1 (共1页)
进入Java版参与讨论
相关主题
java有用论Sun要开源Java了
菜鸟问题一问what's inside an java object?
JSP is rubbish!Why My Java Program Is So Slow?
help:tomcat5 on FC4语言坑:有没有Java和C#两边都用的
Java on AIX有人用过Real Time Java吗?
structure in Java??c++熟手如何学习Java直到能够参与开发企业级应用?
迷惑了很久,java 和 c++ 到底谁快?java有没Linq之类的工具?
java的接口runnable这几年Java跟其他语言的差距拉大了。
相关话题的讨论汇总
话题: java话题: c++话题: allsum话题: sys话题: user