小编Ada*_*son的帖子

第一次Java循环运行时,为什么?[Sun HotSpot 1.5,sparc]

在对Solaris SPARC盒子上的一些Java代码进行基准测试时,我注意到我第一次调用基准测试函数时,它运行得很慢(10倍差异):

  • 首先| 1 | 25295.979毫秒
  • 第二| 1 | 2256.990毫秒
  • 第三| 1 | 2250.575毫秒

为什么是这样?我怀疑是JIT编译器,有没有办法验证这个?

编辑:根据一些答案,我想澄清一下,这段代码是最简单的测试案例,我可以找到展示这种行为.所以我的目标不是让它快速运行,而是要了解发生了什么,所以我可以在我真正的基准测试中避免它.

解决: Tom Hawtin正确地指出我的"慢"时间实际上是合理的.根据这一观察,我将调试器附加到Java进程.在第一个中,内循环看起来像这样:

0xf9037218:     cmp      %l0, 100
0xf903721c:     bge,pn   %icc,0xf90371f4        ! 0xf90371f4
0xf9037220:     nop
0xf9037224:     ld       [%l3 + 92], %l2
0xf9037228:     ld       [%l2 + 8], %l6
0xf903722c:     add      %l6, 1, %l5
0xf9037230:     st       %l5, [%l2 + 8]
0xf9037234:     inc      %l0
0xf9037238:     ld       [%l1], %g0
0xf903723c:     ba,pt    %icc,0xf9037218        ! 0xf9037218
Run Code Online (Sandbox Code Playgroud)

在接下来的迭代中,循环如下所示:

0xf90377d4:     sub      %l2, %l0, %l3
0xf90377d8:     add      %l3, %l0, %l2
0xf90377dc:     add      %l2, …
Run Code Online (Sandbox Code Playgroud)

java performance jvm-hotspot microbenchmark

11
推荐指数
2
解决办法
4921
查看次数

客户端JavaScript可以使用自己的HTTP代理吗?

我的服务器server.example.com无法从Internet访问.但是,有一个可访问的HTTP代理proxy.example.com,它可以与服务器通信.

如果用户将其浏览器配置为通过proxy.example.com获取*.example.com,或使用我提供的代理autoconfig文件,则他们可以访问服务器(在使用代理进行身份验证后).我想避免让他们完成这个手动过程.

是否可以通过编程方式执行此操作?JavaScript将通过可访问Internet的www.example.com网站提供,因此似乎没有一个安全问题会使原则上无法实现.

我的约束是proxy.example.com是一个HTTP代理,我无法触摸它.我只控制server.example.com和www.example.com,我的网络应用程序只能在server.example.com上运行.

javascript proxy http-tunneling

3
推荐指数
1
解决办法
3327
查看次数