在JDK中,它实现为:
public static void sleep(long millis, int nanos)
throws InterruptedException {
if (millis < 0) {
throw new IllegalArgumentException("timeout value is negative");
}
if (nanos < 0 || nanos > 999999) {
throw new IllegalArgumentException(
"nanosecond timeout value out of range");
}
if (nanos >= 500000 || (nanos != 0 && millis == 0)) {
millis++;
}
sleep(millis);
}
Run Code Online (Sandbox Code Playgroud)
这意味着nanos
论证根本没有做任何事情.
它背后的想法是,在具有更精确计时的硬件上,JVM可以为它提供更好的实现吗?
我刚看到这里
#include <stdio.h>
int main(int argc, char *argv[printf("Hello, world!\n")]) {}
Run Code Online (Sandbox Code Playgroud)
这样做是打印"Hello World!"
但是这里到底发生了什么?
我能猜到的最好的是它被编译并抛出执行堆栈的顶部,但语法对我来说看起来不合法......
如果我有:
System.setProperty("javax.net.ssl.keyStore", '/etc/certificates/fdms/WS1001237590._.1.ks');
System.setProperty("javax.net.ssl.keyStorePassword", 'DV8u4xRVDq');
System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true");
Run Code Online (Sandbox Code Playgroud)
我可以毫无问题地打开安全连接.
但是,我想将证书直接存储在战争中,所以我使用:(文件输入流最终将成为资源流,但我这样做是为了让它工作.)
System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true");
KeyStore ks = KeyStore.getInstance("JKS");
ks.load(new FileInputStream("/etc/certificates/fdms/WS1001237590._.1.ks"), "DV8u4xRVDq".toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(ks, "DV8u4xRVDq".toCharArray());
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(kmf.getKeyManagers(), null, null);
Run Code Online (Sandbox Code Playgroud)
现在,如果我打开相同的连接,我得到: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
我一直在寻找一些提及这一点,但我找不到任何实质性的信息.有没有办法改变Swing组件的z顺序,或者至少改变绘制顺序,使它们看起来高于其他组件?
有没有办法找出正在评估的当前视图(或gsp文件)?
由于URL映射和转发,RequestURI不起作用.
我正在尝试根据当前的GSP文件动态检索资源.例如,如果正在执行product/view.gsp,我想要包含product/view.css和product/view.js(如果它们存在).我遇到问题的部分是获取文本"视图"
我们有一个庞大的表,我需要在一行上进行更新.我不知道该行的主键,但我有一个在该表中唯一的varchar值.我还拥有该表中其他一些列的值.
运行更新需要花费三分钟,我假设它正在进行全表扫描.
查看表中的索引,列上的索引的基数为零,页数为零.还有其他索引的基数等于表中的行数(几百万)和几十万的页数.
这些数字究竟意味着什么?
作为一个后续,是否会添加一个限制,以更高的基数或页数来命中索引,从而加快执行速度?或者还有什么我可以看到的指标,找到一个更适合快速找到我要改变的行.
因此,对于一些研究工作,我需要分析大量原始运动数据(目前几乎是数据,并且正在增长),并吐出定量信息和图表.
我使用Groovy编写了大部分内容(使用JFreeChart进行制图),当性能成为问题时,我用Java重写了核心部分.
问题是分析和绘图需要大约一分钟,而加载所有数据大约需要5-10分钟.可以想象,当我想对绘图进行细微更改并查看输出时,这会非常烦人.
我有几个想法来解决这个问题:
将所有数据加载到SQLite数据库中.
优点:它会很快.如果需要,我将能够运行SQL来获取聚合数据.
缺点:我必须编写所有代码.此外,对于某些图,我需要访问每个数据点,因此加载几十万个文件,某些部分可能仍然很慢.
Java RMI返回对象.所有数据都被加载到一个根对象中,当序列化时,该对象大约为200兆.我不确定通过RMI传输200meg对象需要多长时间.(同一客户).
我必须运行服务器并加载所有数据,但这不是什么大问题.
主要职业:这应该花费最少的时间来写
运行加载数据的服务器,并在服务器vm内的命令上执行groovy脚本.总的来说,这似乎是最好的想法(实施时间与性能以及其他长期效益)
我想知道的是还有其他人解决了这个问题吗?
分析后(2011年3月29日):在写完这个问题几个月后,我最终不得不学习R来运行一些统计数据.使用R对于数据分析和聚合来说远比我正在做的更容易,更快捷.
最终,我最终使用Java来运行初步聚合,然后在R中运行其他所有内容.与使用JFreeChart相比,R制作漂亮的图表要容易得多.
我们有一个错误,我们试图找到非确定性的错误(好吧,它是确定性的,但我们只是不知道究竟是什么造成它)而且它每隔几个小时才会发生一次.
我们读了很多网络数据,并且我们有很多线程,所以它有可能来自输入,竞争条件或两者的组合,但在大多数情况下,不可重现.
我想知道是否有任何JVM录像机/重放器可以存储JVM中发生的所有内容,因此我们可以逐步完成它并重新创建异常步骤.
我找到了一个.(我不会发布它,所以人们不认为我正在尝试宣传产品.),但我想知道是否有其他人,更重要的是,人们已经使用过的其他人,并且可以报告工作得很好.
编辑添加:
我找到了重播解决方案.我从来没有用过它,我从来没有听说过它,所以我不知道它到底有多好.
我们使用JProfiler,但我认为它实际上并不支持录制/重放所有内容.
我需要在目录/ LoT/LoF的每一行中的章节/表格/图号后添加一个句点.
即,现在它显示:
TABLES
1 first
2 second
Run Code Online (Sandbox Code Playgroud)
但我需要它来表明:
TABLES
1. first
2. second
Run Code Online (Sandbox Code Playgroud)
我知道这可以用tocloft包来完成,但是,这个包与我正在使用的乳胶样式有冲突,错误:\c@lotdepth is already defined
.(这种风格是我大学论文格式的旧风格,但它有点过时,所以我需要做一些修改才能做到正确.
我还发现我可以更改章节/ thetable/thefigure,因此它们包含句点.然而,这会弄乱我的参考资料,并在我的所有参考资料中都有一段时间.
这类似于装箱问题,但有一些变化.
我所拥有的是带注释数据的时间序列,当我绘制图表时,我想将注释放在总体上最小化与注释点的距离的位置.
这张图表(无偿地被盗)显示了我想做的事情:.
我知道这是一个优化问题,但我不知道从哪里开始.我首先做的是将它放在相应的x上,然后向上/向下移动y以找到可用的位置并保存已绘制的区域.虽然这有效,但它并没有真正充分利用可用空间,我想知道是否有更好的东西.
我想知道是否有任何已知的算法可以攻击这个或类似的问题?
补充说明:它不需要是最佳的,但绝对需要快速.这是在渲染期间完成的,因此在执行时会阻止UI.