我想为我的Java代码(一种单线程,本地,复杂的算法)制定一些性能测量(主要是运行时).(所以我不想要宏基准来衡量JVM实现.)
有了这个工具,我想
为此,我想使用一个工具或框架
哪些工具/框架满足这些要求?哪一个适合复杂性和趋势分析,为什么?
您如何以编程方式为多播发现机制配置hazelcast?
细节:
该文档仅提供TCP/IP的示例并且已过时:它使用不再存在的Config.setPort().
我的配置看起来像这样,但发现不起作用(即我得到输出"Members: 1":
Config cfg = new Config();
NetworkConfig network = cfg.getNetworkConfig();
network.setPort(PORT_NUMBER);
JoinConfig join = network.getJoin();
join.getTcpIpConfig().setEnabled(false);
join.getAwsConfig().setEnabled(false);
join.getMulticastConfig().setEnabled(true);
join.getMulticastConfig().setMulticastGroup(MULTICAST_ADDRESS);
join.getMulticastConfig().setMulticastPort(PORT_NUMBER);
join.getMulticastConfig().setMulticastTimeoutSeconds(200);
HazelcastInstance instance = Hazelcast.newHazelcastInstance(cfg);
System.out.println("Members: "+hazelInst.getCluster().getMembers().size());
Run Code Online (Sandbox Code Playgroud)
如果我偶然发现MulticastTimeout,我要么得到"Members: 1"或者
2013年12月5日下午8:50:42 com.hazelcast.nio.ReadHandler警告:[192.168.0.9]:4446 [dev] hz._hzInstance_1_dev.IO.thread-in-0关闭套接字到端点地址[192.168.0.7] :4446,原因:java.io.EOFException:远程套接字已关闭!2013年12月5日下午8:57:24 com.hazelcast.instance.Node严重:[192.168.0.9]:4446 [dev]无法加入群集,关闭!com.hazelcast.core.HazelcastException:300秒内无法加入!
如果我将配置更改为以下内容,我仍然只能获得1个成员:
Config cfg = new Config();
NetworkConfig network = cfg.getNetworkConfig();
network.setPort(PORT_NUMBER);
JoinConfig join = network.getJoin();
join.getMulticastConfig().setEnabled(false);
join.getTcpIpConfig().addMember("192.168.0.1").addMember("192.168.0.2").
addMember("192.168.0.3").addMember("192.168.0.4").
addMember("192.168.0.5").addMember("192.168.0.6").
addMember("192.168.0.7").addMember("192.168.0.8").
addMember("192.168.0.9").addMember("192.168.0.10").
addMember("192.168.0.11").setRequiredMember(null).setEnabled(true);
//this sets the allowed connections to the cluster? necessary for …Run Code Online (Sandbox Code Playgroud) 什么是类型转换?什么是类型转换?
我什么时候应该使用它们?
细节:对不起,如果这是一个明显的问题; 我是C++的新手,来自红宝石背景,习惯于to_s等等to_i.
我的Java代码中有一些TODO标记,并希望对它们进行参数化,主要是使用
由于我不想为这些方面的每个组合创建新的任务标签(特别是对于每个截止日期),是否有一个插件可以处理参数化的TODO标签?
例如,它应该正确设置任务的优先级和截止日期
\\TODO !1 ^30.11.1999 #Y2kBug...
Run Code Online (Sandbox Code Playgroud)
细节:
^dueDate或!priority.以下是否正确?
(当涉及多个生产者(即CAS操作)时,破坏者模式是否仍然比其他无锁多生产者多消费者队列(例如来自提升)快得多?)
我的情况详细:
处理条目可以产生几个新条目,这些条目也必须最终处理.性能具有最高优先级,以FIFO顺序处理的条目具有第二优先级.
在当前实现中,每个线程使用本地FIFO,在其中添加新条目.空闲线程从其他线程的本地FIFO中窃取工作.线程处理之间的依赖关系使用无锁,机械同情的哈希表(写入时的CAS,具有桶粒度)来解决.这导致相当低的争用,但FIFO顺序有时会被破坏.
使用干扰模式可以保证FIFO顺序.但是不会将条目分配到线程上导致更高的争用(例如,读取游标上的CAS),而不是工作窃取的本地FIFO(每个线程的吞吐量大致相同)?
我发现的参考文献
关于破坏者的标准技术论文(第5章+6)中的性能测试不包括不相交的工作分布.
https://groups.google.com/forum/?fromgroups=#!topic/lmax-disruptor/tt3wQthBYd0是我在disruptor +偷窃工作中发现的唯一参考.它声明如果存在任何共享状态,每个线程的队列会显着减慢,但不会详细说明或解释原因.我怀疑这句话适用于我的情况:
concurrency concurrent-programming disruptor-pattern work-stealing
我正在尝试com.bar.baz:mapping:0.0.1-SNAPSHOT使用Gradle从Nexus服务器复制最新的jar文件()。
使用以下build.gradle可以下载特定版本:
apply plugin: "java"
repositories {
maven {
credentials {
username = "${mavenUser}"
password = "${mavenPassword}"
}
url "https://nexus.cluster.foo.cloud/repository/maven-snapshots"
authentication {
basic(BasicAuthentication)
}
}
}
configurations {
copyConf
}
dependencies {
copyConf group: "com.bar.baz", name: "mapping", version: "0.0.1-20190508.085532-7"
}
task copyTask(type: Copy) {
from configurations.copyConf
into "."
}
Run Code Online (Sandbox Code Playgroud)
但是我想下载最新0.0.1-SNAPSHOT版本,而不是特定0.0.1-20190508.085532-7版本。那可能吗?怎么样?
使用version "latest.integration"而不是"0.0.1-20190508.085532-7"(并调用gradle copyTask --refresh-dependencies --stacktrace)会产生:
FAILURE: Build failed with an exception.
* What went wrong: Could not resolve all …Run Code Online (Sandbox Code Playgroud) 我发现Smalltalk是创新者的越来越多的方面,即第一次创造技术或至少是整体概念.我能想到以下几点:
所有这些都是正确的吗?Smalltalk带来了哪些进一步的创新?
我确定还有更多(例如在语言设计领域?)
language-agnostic programming-languages smalltalk innovation
当我通过Eclipse执行下面的简单代码示例(版本3.5.2,在Ubuntu 10.04上,java版本"1.6.0_20"OpenJDK运行时环境(IcedTea6 1.9.9)(6b20-1.9.9-0ubuntu1~10.04.2)OpenJDK服务器VM(内置19.0-b09,混合模式)),大约需要10秒钟.当我从我的shell执行它(使用相同的优先级和java版本)时,大约需要40秒.
for (int i = 0; i<1000*1000; i++) {
System.out.println(Math.cos(i));
}
Run Code Online (Sandbox Code Playgroud)
我还尝试了其他程序,在运行时和输出量方面各不相同:每个程序在shell中都要慢得多.这与执行顺序无关.对于输出很少的程序,Eclipse中的最小百分比差异为85秒,而shell为145秒.
什么原因?
你知道以下面试问题的解决方案吗?
设计电话簿的数据结构,可以安全有效地按名称搜索数字,并按编号搜索名称.
细节:
stackoverflow上的解决方案都是关于哈希表的,但是,我必须为它构建2个哈希表,这需要两倍的空间.
如何以时间和空间效率,类型安全的方式只使用一个数据结构?
java ×4
build.gradle ×1
c++ ×1
casting ×1
collections ×1
comments ×1
concurrency ×1
console ×1
dictionary ×1
eclipse ×1
generics ×1
gradle ×1
hash ×1
hashmap ×1
hazelcast ×1
innovation ×1
lambdaj ×1
maven ×1
monitoring ×1
multicast ×1
nexus ×1
performance ×1
runtime ×1
shell ×1
smalltalk ×1
type-safety ×1
ubuntu ×1