RT
现在在改造一个c程序, 用java去实现
客户比较担心处理速度和内存问题
请教下如何比较?
(1. 处理速度 2.内存)
现在在改造一个c程序, 用java去实现
客户比较担心处理速度和内存问题
请教下如何比较?
(1. 处理速度 2.内存)
解决方案 »
- 面试题选择,求解释,,,,谢了
- 急求高手指导:java如何做连接windows域的用户验证
- 请问如何改变鼠标的坐标?
- 数据结构的书:)
- Linuix 下生成图片问题
- 怎么样在 .NET 下做一个程序,让这个程序做这样的一件事: 24小时检测公司的防火墙是不是死掉,如果死掉就调用 DEPLHI平台下编译的短信平
- 轻量组件与重量组件
- 在C++或JAVA或VB中有没有某类函数将任一排列组合拆分成单元并载入数据库表中??十万火急
- 一个线程的概念问题.....
- 怎样用java 开发web service?请各位高手发表意见
- java循环中如何忽略异常。使异常不影响执行速度。求解。
- 一行一个数字,求最快的读取方法
如果是CPU密集型程序,比如压缩解压,当然C的效率较高了。
除此之外,基本没啥问题。
有些汽车制造的流水线,也用Java的程序来控制呢,只要开发过程中严谨把关,
对数据的处理格外注重效率,基本没什么可以担忧的。内存一般不会成为问题,因为,C语言也会面临内存泄露的风险,
没有非常完美的程序,只有非常粗心的程序员,除此之外,内存不是问题。
http://blog.csdn.net/liigo/article/details/395223
查看java运行内存不是把虚拟机本身的内存也包括了吗?
这样比较不是没意义了吗?烦恼啊!
如果你是一个从C改到Java的代码,不用说,代码量不会太大,那你的结果必然是慢。
但是不用担心,足够快就OK了。
某个java程序的堆内存c写的exe程序的话, 用任务管理器是不是就行了呢?请教
意义? 内存的意义就在于你用了,导致别的进程很难分配到内存了,你就是浪费了
别的进程是不会在乎你是Java程序本身废内存,还是JVM废的内存另外,你总问只会Java的人,你能得到真正的结论吗?
某个java程序的堆内存c写的exe程序的话, 用任务管理器是不是就行了呢?请教
不是我在乎
而是客户要求做一个对比资料
原先是mfc的程序,
后来涉及到跨平台
所以要改成java实现.具体的说的话, 这个程序是一个改造java的class文件的程序
就是在class文件中插入测试代码
直接修改字节码?够狠啊。
如果能的话,用AOP来做更安全些。既然命题明确,还是能进行些测试的:
首先:如果程序能实现流式处理,那么内存其实可以不需要进行对比。
其次:把你程序要做的操作,切分为某些局部操作,比如:
—— 文件读取 和 文件写入:顺序读写、随机读写、大文件和小文件;其实这个我觉得基本没差别;
—— 内存搜索,在巨大的byte[]中搜索一段特征码;这个也许C会有些优势;
—— 其它暂时想不到了。跟客户说清楚,程序中主要处理逻辑就是这些操作的组合,那么针对每种操作进行粗略性能比较就行了。
很多东西,看似合理就够了;最终还是要自己先拿定主意,再适当选择样本数据。
因为程序不仅针对方法, 还针对具体每一行代码其实就是class文件在内存中的数据结构问题
c程序中是用结构体的
java的话肯定要用对象了就是这俩个结构占用内存的对比还有就是处理速度的问题
简单读取class文件结构到内存中去
速度的话
MFC的是java的2倍左右比较方法是批处理执行100次如下java版@echo offset t1=%time%for /l %%a in (1 1 100) do (
java -jar Demo.jar Helloworld.class
)set t2=%time%echo start at : %t1%
echo end at : %t2%
pause
MFC版
@echo offset t1=%time%for /l %%a in (1 1 100) do (
Demo.exe Helloworld.class
)set t2=%time%echo start at : %t1%
echo end at : %t2%
pause
你这个重点是在比较JVM启动的时间开销了。