我正在编写一个应用程序,其中内存以及在较小程度上的速度至关重要.我从剖析中发现,我花了很多时间在Map和Set操作中.虽然我在考虑减少调用这些方法的方法,但我想知道是否有人在编写或遇到过显着改进访问时间或内存开销的实现?或者至少,在某些假设的情况下,这可以改善这些事情吗?
从JDK源代码来看,我无法相信它不能更快或更精简.
我知道Commons Collections,但我不相信它有任何实现,其目标是更快或更精简.Google Collections也是如此.
更新:应该注意到我不需要线程安全.
我有一个微妙的Spark问题,我无法绕过头.
我们有两个RDD(来自Cassandra).RDD1包含Actions和RDD2包含Historic数据.两者都有一个id可以匹配/加入.但问题是这两个表有一个N:N关系.Actions包含多个具有相同ID的行,因此也是如此Historic.以下是两个表的一些示例日期.
Actions 时间实际上是一个时间戳
id | time | valueX
1 | 12:05 | 500
1 | 12:30 | 500
2 | 12:30 | 125
Run Code Online (Sandbox Code Playgroud)
Historic set_at实际上是一个时间戳
id | set_at| valueY
1 | 11:00 | 400
1 | 12:15 | 450
2 | 12:20 | 50
2 | 12:25 | 75
Run Code Online (Sandbox Code Playgroud)
我们如何以某种方式加入这两个表,我们得到这样的结果
1 | 100 # 500 - 400 for Actions#1 with time 12:05 because Historic was in that time at 400
1 …Run Code Online (Sandbox Code Playgroud) 我正试图通过我的Android 3.2平板电脑处理条形码扫描仪USB的价值,扫描仪在操作系统中成功运行,但我希望在没有编辑文本的情况下获得程序中的价值,usbmanager主机和附件没有列出它与通过USB连接设备.
我想知道是否有可用的开源推荐引擎?它应该建议亚马逊和Netflix之类的东西.我听说过一个名为Apache Mahout - Taste的框架.我下周试试.如果你能分享你宝贵的想法,那将是很棒的.
这不是有效的代码:
public class MyClass
{
private static boolean yesNo = false;
static
{
if (yesNo)
{
System.out.println("Yes");
return; // The return statement is the problem
}
System.exit(0);
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个愚蠢的例子,但在静态类构造函数中我们不能return;.为什么?这有充分的理由吗?有人知道更多关于此的事情吗?
所以我应该做的return就是结束那里的建设.
谢谢
我有一个Java Thread,它暴露了其他线程想要访问的属性:
class MyThread extends Thread {
private Foo foo;
...
Foo getFoo() {
return foo;
}
...
public void run() {
...
foo = makeTheFoo();
...
}
}
Run Code Online (Sandbox Code Playgroud)
问题是从运行到foo可用时需要很短的时间.呼叫者可以getFoo()在此之前致电并获得null.我宁愿他们只是阻塞,等待,并在初始化发生后获取值.(foo之后永远不会改变.)在它准备好之前它将是几毫秒,所以我对这种方法很满意.
现在,我可以通过这种方式实现这一目标,wait()并且notifyAll()有95%的可能性我会做得对.但我想知道你们都会怎么做; 有没有一个原始人java.util.concurrent会这样做,我错过了?
或者,你会如何构建它?是的,制造foo易变的.是的,在内部锁定上同步Object并将检查放入while循环中,直到它不是null.我错过了什么吗?
假设我要求微软描述完美的,现代的,基于微软的技术堆栈,以支持标准的电子商务网站,该网站可能具有简单的2层Web /数据库架构.会是什么样的?是的,我只是在寻找产品/技术名称列表.
例如,在J2EE世界中,我可能会描述一个包含以下内容的堆栈:
我猜这个堆栈包括.NET,SQL Server,ASP.NET,IIS等的一些组合,但我不熟悉这个世界.在Microsoft-land上寻找相同的想法.
使用MapReduce可以在分布式系统上解决简单的线性规划问题吗?
我的问题是在整个Android API中,很多库调用要求将results[]参数传递给方法,例如:
public boolean isInProximity(double startLat, double startLongitude, float meters) {
float[] results = new float[3];
Location.distanceBetween(startLat, startLongitude, endLatitude, endLongitude, results);
return results[0] <= meters;
}
Run Code Online (Sandbox Code Playgroud)
对android的调用是Location.distanceBetween(),它需要results[]为什么他们不只是在方法中包含一个返回签名?我假设它是某种内存或速度优化.我不确定背后的确切原因.
我确实遇到了一个使用spark进行数据预处理的迷你教程:http: //ampcamp.berkeley.edu/big-data-mini-course/featurization.html
但是,这仅讨论了文本文件解析.有没有办法解析spark系统中的xml文件?
java ×5
android ×2
apache-spark ×2
performance ×2
.net ×1
asp.net ×1
barcode ×1
blocking ×1
cassandra ×1
collections ×1
hadoop ×1
mahout ×1
map ×1
mapreduce ×1
optimization ×1
properties ×1
rdd ×1
return ×1
set ×1
sql-server ×1
xml ×1