我有一个Java进程/应用程序.当我在那个java进程上运行/ usr/sbin/lsof -p时,我看到很多"无法识别协议".另外,有趣的是,文件描述符(FD)以非常稳定的速率增加.正在创建的FD正在描述为"无法识别协议".
那么,有没有办法对java进程进行检测/分析,以便确定谁在创建那么多FD.任何工具的任何详细解释都会非常有用.
一个快速的谷歌搜索告诉我strace是一种方式,但IIUC,将显示来自java进程的Linux系统调用.我更感兴趣的是我的java代码的哪一部分比正在生成的系统调用表现得差.
同样,任何想法/建议都会很棒!
bash运算符<<<意味着什么,如下面的代码块?为什么$ IFS仍然是一个空间,而不是一个时期?
LINE="7.6.5.4"
IFS=. read -a ARRAY <<< "$LINE"
echo "$IFS"
echo "${ARRAY[@]}"
Run Code Online (Sandbox Code Playgroud) 我正在使用新的iOS 5功能,并试图使用新的故事板功能将我的一个应用程序重写为纯iOS 5应用程序.
简而言之,我有一个开始屏幕,如果用户保存了一些登录数据,应用程序会尝试连接到服务器,如果没有,它应该要求它们.
我就是这样做的.我创建了一个Viewcontroller,它在viewDidLoad方法中进行连接.如果没有登录数据或登录不成功,我需要手动设置到登录屏幕.
现在这是可能的,还是我需要2个故事板呢?
我想在java中生成随机数,我知道我应该使用像Math.random()这样的现有方法,但是,我的问题是:每次运行我的应用程序时,如何生成相同的数字序列?示例:生成的序列为:0.9,0.08,0.6所以我希望每次执行此方法时都会生成此序列.
当我用命令-T搜索某个文件时,它常常很难找到它,因为我不在正确的目录中,所以我必须更改目录.
是否可以设置命令-T将首先在书签Nerdtree或其他地方的目录中搜索?
我可以将目录更改为/但是此搜索范围非常大的文件.当我将dir更改为我的主目录并且我正在寻找一些普通的东西时,.bashrc我会找到位于.wine目录下的相当多的文件.
在99%的时间里,我需要搜索我积极使用的项目目录中的文件.我可以在某些首选项中设置这些目录吗?
此问题来自2011 Codesprint(http://csfall11.interviewstreet.com/):
计算机科学的基础之一是知道数字如何以2的补码表示.想象一下,使用32位写下A和B之间的所有数字,包括2的补码表示.你会写下多少1?输入:第一行包含测试用例数T(<1000).每个下一个T行包含两个整数A和B.输出:输出T行,一行对应于每个测试用例.约束:-2 ^ 31 <= A <= B <= 2 ^ 31 - 1
样品输入:3 -2 0 -3 4 -1 4样品输出:63 99 37
说明:对于第一种情况,-2包含31 1后跟0,-1包含32 1和0包含0 1.因此,总是63.对于第二种情况,答案是31 + 31 + 32 + 0 + 1 + 1 + 2 + 1 = 99
我意识到你可以使用-X中的1的数量等于(-X)= X-1的补码中的0的数量以加速搜索的事实.该解决方案声称有一个O(log X)递归关系用于生成答案但我不明白.解决方案代码可以在这里查看:https://gist.github.com/1285119
如果有人能解释这种关系是如何产生的,我将不胜感激!
// Not really how java.util.concurrent.Semaphore is implemented
@ThreadSafe
public class SemaphoreOnLock {
private final Lock lock = new ReentrantLock();
// CONDITION PREDICATE: permitsAvailable (permits > 0)
private final Condition permitsAvailable = lock.newCondition();
@GuardedBy("lock") private int permits;
SemaphoreOnLock(int initialPermits) {
lock.lock();
try {
permits = initialPermits;
} finally {
lock.unlock();
}
}
/* other code omitted.... */
Run Code Online (Sandbox Code Playgroud)
我有一个关于上面的示例的问题,该示例是从Java Concurrency中提取的实践清单14.12计算使用Lock实现的信号量.
我想知道为什么我们需要在构造函数中获取锁(如图所示调用lock.lock()).据我所知,构造函数是原子的(除了引用转义),因为没有其他线程可以获得引用,因此,半构造对象对其他线程不可见.因此,我们不需要构造函数的synchronized修饰符.此外,只要对象安全发布,我们也不需要担心内存可见性.
那么,为什么我们需要在构造函数中获取ReentrantLock对象?
我在Android上构建一个应用程序并遇到错误,在网上搜索时遇到了你的帖子,并改变了eclipse.ini以增加Xms和Xmx参数,但这个错误仍然没有消失.
我在Mac OS上使用Eclipse IDE for Java和Android SDK 2.1.请帮助或请指出可能知道的人.
顺便说一句,这个错误只发生在我添加外部jar文件(我需要我的项目)时.以下是我在类路径中的外部jar文件列表.)
这是完整的错误:
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Lorg/apache/commons/logging/impl/AvalonLogger;
[2010-05-02 21:57:05 - MyApp] at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
[2010-05-02 21:57:05 - MyApp] at com.android.dx.dex.file.DexFile.add(DexFile.java:143)
[2010-05-02 21:57:05 - MyApp] at com.android.dx.command.dexer.Main.processClass(Main.java:301)
[2010-05-02 21:57:05 - MyApp] at com.android.dx.command.dexer.Main.processFileBytes(Main.java:278)
[2010-05-02 21:57:05 - MyApp] at com.android.dx.command.dexer.Main.access$100(Main.java:56)
[2010-05-02 21:57:05 - MyApp] at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:229)
[2010-05-02 21:57:05 - MyApp] at com.android.dx.cf <http://com.android.dx.cf.direct.ClassPathOpener.pro> .direct.ClassPathOpener.processArchive(ClassPathOpener.java:244)
[2010-05-02 21:57:05 - MyApp] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:130)
[2010-05-02 21:57:05 - MyApp] at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:108)
[2010-05-02 …Run Code Online (Sandbox Code Playgroud) 我想为我的应用程序存储一些设置,如用户名和密码,这样在应用程序开始时我就可以进行用户身份验证.
任何人都可以指导我如何使用phoneGap实现这一目标.
如果我错了,请随时纠正我.在JVM堆中,有两代,旧的和年轻的.在完成GC时,在老一代中,有一些繁重的操作,如紧凑空间和固定孔,这将使JVM挂起.我发现在年轻一代,应用了轻量级GC,我的搜索结果中还有另一个名为Eden的区域涉及年轻一代.然而,在搜索了很多文档后,我仍然对年轻一代的GC有两个混淆,
java ×3
android ×2
algorithm ×1
bash ×1
binary ×1
concurrency ×1
cordova ×1
file ×1
ios5 ×1
jvm ×1
linux ×1
locking ×1
lsof ×1
nerdtree ×1
recurrence ×1
search ×1
shell ×1
storyboard ×1
vim ×1
vim-plugin ×1