V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  chaoschick  ›  全部回复第 10 页 / 共 22 页
回复总数  422
1 ... 6  7  8  9  10  11  12  13  14  15 ... 22  
2023-12-27 07:45:36 +08:00
回复了 chaoschick 创建的主题 程序员 相同的 for 循环 为什么 Java 比 c 的速度快?
以前我一直以为编译器优化能提升的性能很小,这次真是长见识了
2023-12-26 17:12:04 +08:00
回复了 chaoschick 创建的主题 程序员 相同的 for 循环 为什么 Java 比 c 的速度快?
@diivL #include <sys/time.h>
#include <stdio.h>

int main(int argc, char* argv[]) {
struct timeval start_time, end_time;

gettimeofday(&start_time, NULL);

long count = 2147483640;
long i = 0;

do {
++i;
} while (--count);

gettimeofday(&end_time, NULL);

int total_time = 1000000 * (end_time.tv_sec - start_time.tv_sec) + (end_time.tv_usec - start_time.tv_usec);
printf("%d us", total_time);
printf("\n");
printf("%.3f ms", (double) total_time / 1000);
printf("\n");

printf("%l", i);
return 0;
}
[admin@iZt4ngr7j75qbzgg9ilsifZ c]$ gcc duff2.c -O3 && ./a.out
1 us
0.001 ms

这是优化掉 for 循环了吗?
2023-12-26 16:54:44 +08:00
回复了 chaoschick 创建的主题 程序员 相同的 for 循环 为什么 Java 比 c 的速度快?
@diivL [admin@iZt4ngr7j75qbzgg9ilsifZ c]$ gcc duff2.c -O3 && ./a.out
3688484 us
3688.484 ms
2023-12-26 16:53:53 +08:00
回复了 chaoschick 创建的主题 程序员 相同的 for 循环 为什么 Java 比 c 的速度快?
public class DuffDevice {

private static long duff2(long count) {
long i = 0;
do {
++i;
} while (--count >0);
return i;
}

public static void main(String[] args) {
long duff;
long start, end;
DuffDevice duffDevice = new DuffDevice();

start = System.currentTimeMillis();
duff = duff2((long) Integer.MAX_VALUE - 7);
end = System.currentTimeMillis();
System.out.println(duff + " " + (end - start) + " ms");
}
}

输出
2147483640 639 ms

我改了一下 i 值的类型 耗时 变长了
所以 应该没把循环优化掉吧
2023-12-26 16:45:21 +08:00
回复了 chaoschick 创建的主题 程序员 相同的 for 循环 为什么 Java 比 c 的速度快?
@tool2d [admin@iZt4ngr7j75qbzgg9ilsifZ c]$ cat duff2.c
#include <sys/time.h>
#include <stdio.h>

int main(int argc, char* argv[]) {
struct timeval start_time, end_time;

gettimeofday(&start_time, NULL);

long count = 2147483640;
volatile long i = 0;

do {
++i;
} while (--count);

gettimeofday(&end_time, NULL);

int total_time = 1000000 * (end_time.tv_sec - start_time.tv_sec) + (end_time.tv_usec - start_time.tv_usec);
printf("%d us", total_time);
printf("\n");
printf("%.3f ms", (double) total_time / 1000);
printf("\n");

printf("%l", i);
return 0;
}
[admin@iZt4ngr7j75qbzgg9ilsifZ c]$ gcc duff2.c && ./a.out
4621705 us
4621.705 ms
2023-12-26 16:43:15 +08:00
回复了 chaoschick 创建的主题 程序员 相同的 for 循环 为什么 Java 比 c 的速度快?
@tool2d 我试试
2023-12-26 16:42:45 +08:00
回复了 chaoschick 创建的主题 程序员 相同的 for 循环 为什么 Java 比 c 的速度快?
@xtreme1 能解释一下为什么两者性能如此悬殊的原因吗
2023-12-22 18:51:21 +08:00
回复了 jiaomeng 创建的主题 OpenAI 文心一言只会废话,不能解决问题
不止废话 还没有上下文
2023-12-22 18:47:20 +08:00
回复了 anything66 创建的主题 问与答 怎么过去忘掉过去几年受过的伤害,背刺事件
塞翁失马焉知非福
2023-12-22 08:26:50 +08:00
回复了 monkeyWie 创建的主题 JetBrains 我吐了, IDEA 新版本真的坑死人
2023.1 路过
2023-12-22 08:09:56 +08:00
回复了 Whiplash55 创建的主题 投资 突然意识到一些认知以外的挣钱方式,请各位指导一下
实际尝试一下 亏了的话就当买个教训 不要留下遗憾 出事时能及时止损抽身离开就好
2023-12-22 07:50:28 +08:00
回复了 hypoxia001 创建的主题 问与答 请问有 虚拟短信 这种服务或者平台吗
我司提供这种服务 但价格略贵
2023-12-22 07:47:17 +08:00
回复了 dai269619118 创建的主题 程序员 想找一个自动生成视频的 api
有网站已经做出来了 api 就不知道有没有了
2023-12-22 07:42:16 +08:00
回复了 LittleDust 创建的主题 编程 你每天编程多久?
8h
EBS 重复了
2023-12-21 09:05:47 +08:00
回复了 Nosub 创建的主题 推广 华为云服务器 2 核 4G5M 云服务器 198/年
性价比太低
2023-12-21 08:02:43 +08:00
回复了 Nosub 创建的主题 推广 华为云服务器 2 核 4G5M 云服务器 198/年
太贵了
2023-12-21 07:46:44 +08:00
回复了 TESTFLIGHT2021 创建的主题 程序员 SSL 证书 是不是互联网新时代的人头税啊。。。。
只是单纯用于加密数据的话 cloudflare 的 ssl 代理就够用了
2023-12-20 19:09:04 +08:00
回复了 newtonMiku 创建的主题 问与答 求助,学校实习不给请假怎么办
多学一门技术不亏 塞翁失马 焉知非福
2023-12-20 08:23:13 +08:00
回复了 Oy2 创建的主题 问与答 大家用过阿里云轻量吗
需要先初始化环境 比方说移除阿里云的各种监控 升级系统 重新激活 selinux 等等之类的
1 ... 6  7  8  9  10  11  12  13  14  15 ... 22  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5227 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 07:18 · PVG 15:18 · LAX 23:18 · JFK 02:18
Developed with CodeLauncher
♥ Do have faith in what you're doing.