我在Mountain Lion上使用IDEA 12 Leda.我想增加IDE可以使用的最大内存.我将Info.plist文件中的VMOptions设置为
-Xmx2048m -ea -XX:+HeapDumpOnOutOfMemoryError -Xverify:none -Xbootclasspath/a:../lib/boot.jar
当我打开IDEA时,我仍然看到最大内存为711m.
jps -v 显示我的VMOptions已加载,但它已被以下选项取代.
29388 **-Xmx2048m** -ea -XX:+HeapDumpOnOutOfMemoryError -Xverify:none -Xbootclasspath/a:../lib/boot.jar -Xms128m **-Xmx800m** -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=64m -XX:+UseCodeCacheFlushing -XX:+UseCompressedOops -Didea.paths.selector=IdeaIC12 -Dsun.java2d.noddraw=true -Didea.max.intellisense.filesize=2500 -Didea.dynamic.classpath=false -Didea.jars.nocopy=false -Dsun.java2d.d3d=false -Dapple.awt.fullscreencapturealldisplays=false -Dapple.laf.useScreenMenuBar=true -Djava.endorsed.dirs= -Dswing.bufferPerWindow=false -Didea.fatal.error.notification=enabled -Didea.cycle.buffer.size=1024 -Didea.popup.weight=heavy -Didea.xdebug.key=-Xdebug -Dapple.awt.graphics.UseQuartz=true -Dsun.java2d.pmoffscreen=false -Didea.no.launcher=false -DCVS_PASSFILE=~/.cvspass -Didea.use.default.antialiasing.in.editor=false -Dcom.apple.mrj.application.live-resize=false -Didea.smooth.progress=false
29392 Jps -Dapplication.home=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home -Xms8m
Run Code Online (Sandbox Code Playgroud)
哪里-Xmx800来的?我需要删除它.
在Java中,当我需要一个回调函数时,我必须实现一个匿名类.在匿名类中,我可以访问外部变量final.
现在我在C++中做同样的事情.我理解C++ lambda工作得更好但有时候我需要传入许多带有匿名类的函数,我只需要传入一个实例.
我尝试了以下示例.它适用于GCC 4.3.4.
class IA {
public:
virtual int f(int x) = 0;
};
int main() {
class : public IA {
int f(int x) { return x + 1; }
} a;
doFancyWork(&a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
有可能像这样捕获外部变量吗?
int main() {
int y = 100; // mark y as final if possible
class : public IA {
int f(int x) { return x + y; }
} a;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
更新:
第二个例子不会编译.错误在这里,
prog.cpp: In member …Run Code Online (Sandbox Code Playgroud) 我使用ido模式.我是这样写的.emacs
(require 'ido)
(setq ido-enable-flex-matching t)
(setq ido-everywhere t)
(ido-mode t)
Run Code Online (Sandbox Code Playgroud)
当我打开文件时,我会执行Cx Cf my_file,如果当前目录中不存在,emacs将尝试在大约一秒内在其他最近使用的目录中搜索它.但是,大多数时候我只是想创建新文件.我必须非常快速地输入文件名,然后用Cj来确认它.我怎么能阻止ido这样做?
当我从我的bash脚本启动我的tcp服务器时,我需要在当前实例开始侦听之前杀死前一个实例(可能仍在侦听同一个端口).
我可以用类似的东西pkill <previous_pid>.如果我理解正确,这只是发送SIGTERM到目标pid.当pkill返回时,目标进程可能仍然活着.有没有办法让它pkill等到它退出?
随着incsearch在Vim的启用,将光标移动到下一场比赛,因为我输入第一个字符.IdeaVim似乎不尊重这个设置.我应该如何在IDEA中启用增量搜索?
我有几个额外的存储库~/.m2/settings.xml.我试过lein search,它没有找到我的存储库中的包.如何告诉leiningen在maven设置中搜索存储库?
如何配置emacs以与其他现代编辑器相同的方式工作,其中按Alt+ D或Alt+ Backspace删除相邻的空格或单个单词?默认情况下,emacs始终删除一个单词.
我正在用Netty编写一个HTTP服务器.我在创建服务器引导程序时设置了keep-alive选项.
bootstrap.setOption("child.keepAlive", true);
每次写HTTP响应时,我都会设置keep-alive标头并在写入响应后关闭通道.
rep.setHeader("Connection", "keep-alive");
channel.write(rep).addListener(ChannelFutureListener.CLOSE);
Run Code Online (Sandbox Code Playgroud)
我不确定我是否应该关闭频道.
如果我明确定义这样的功能(defn f [x] (get x "a")),那么这两个(-> {"a" 1} f)并(f {"a" 1})达到预期效果.
但是,如果我使用匿名函数,只能(#(get % "a") {"a" 1})工作但(-> {"a" 1} #(get % "a"))抛出异常:CompilerException java.lang.ClassCastException: clojure.lang.PersistentArrayMap cannot \
be cast to clojure.lang.ISeq, compiling:(NO_SOURCE_PATH:1:1)
大多数原子运算符在交换之前返回先前的值,例如std::atomic::fetch_add在C++中.使用原子int作为从0开始的全局递增id是很自然的.为什么Clojure的原子返回交换的值?
(def global-counter (atom 0))
(defn next! [] (dec (swap! global-counter inc)))
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法在Clojure中创建一个从零开始的计数器?