如果我想在.NET框架不可用的机器上运行.NET应用程序; 有没有办法将应用程序编译为本机代码?
我被我的应用程序困住,因为我无法调试,因为它是多线程的并且因错误SIGSEGV而崩溃.我从LogCat那里获得了很多信息,它在我的本地库中提供了地址.如果我可以将这些地址转换为我的代码,将会很有帮助.
有没有人知道如何使用android-ndk提供的addr2line?
我试着调查jQuery代码,所以我使用了这个:
document.write($.constructor);
Run Code Online (Sandbox Code Playgroud)
我得到了这个结果:
function Function() { [native code] }
Run Code Online (Sandbox Code Playgroud)
什么[native code]意思?为什么我看不到真正的代码?
经过测试 Google-Chrome
是否有用于JavaScript的本机机器代码编译器?我不是在谈论VM.如果它不存在可以做到吗?
我想知道它是否可以编译为二进制,因为语言的动态性质.
我需要卸载一个加载的DLL System.loadLibrary(..),任何人都知道这是否可能?
我目前正在使用CPU采样分析控制台应用程序.操作系统是带有Microsoft Visual Studio Ultimate 2012 Update 4的Windows 8 Enterprise 64位.我看到34%的Exclusive Samples位于mscorlib.ni.dll中.然后在Modules视图中打开mscorlib.ni.dll,我看到所有调用都是对unknwon行进行的.
我首先使用ngen按照以下说明下载它们:http://blogs.msdn.com/b/visualstudioalm/archive/2012/12/10/creating-ngen-pdbs-for-profiling-reports.aspx但没有运气.尽管pdb存在于正确位置并且在VS选项上正确引用.
在此之后,我尝试用这个PS脚本获取所有可能的符号:http://knagis.miga.lv/gen_ngen_pdb.txt但仍然没有运气.即使pdb(仍然)存在.
有人已经有过这个问题吗?我已经看到另一个答案代码分析以提高性能:查看mscorlib.dll中的CPU周期?但根本没有解决......
恩里科
一段C/C++代码可以为JNI方法提供一个函数指针数组.但是有没有办法直接从Java代码内部(不使用JNI或类似代码)调用数组指针指向的函数?JNI以某种方式做了类似的事情,所以必须有办法.JNI是如何做到的?是通过sun.misc.Unsafe吗?即使不是,我们是否可以使用一些不安全的解决方法来获取执行此操作的JVM代码?
我当然不打算在商业上使用它.我甚至不是专业人士,我只是非常喜欢编码而且我最近一直在研究CUDA所以我想也许我可以尝试将所有东西混合在一起,但JNI调用的开销会破坏GPU加速代码的目的.
使用Google的V8引擎,是否真的可以将JavaScript编译为本机代码,将其保存为二进制文件,并在任何计算机上通过我的软件环境执行它?
我在我的Android应用程序中使用了一些本机库,我想在某个时间点将它们从内存中卸载.当加载了加载本机库的类的ClassLoader被垃圾收集时,库将被卸载.灵感:原生卸货.
在下面的代码中,我通过省略本机库加载代码来简化案例,只演示了Classloader内存泄漏.
我在Android KitKat 4.4.2,API 19上测试了它.设备:Motorola Moto G.
为了演示,我有以下ClassLoader,派生自PathClassLoader用于加载Android应用程序.
package com.demo;
import android.util.Log;
import dalvik.system.PathClassLoader;
public class LibClassLoader extends PathClassLoader {
private static final String THIS_FILE="LibClassLoader";
public LibClassLoader(String dexPath, String libraryPath, ClassLoader parent) {
super(dexPath, libraryPath, parent);
}
@Override
protected void finalize() throws Throwable {
Log.v(THIS_FILE, "Finalizing classloader " + this);
super.finalize();
}
}
Run Code Online (Sandbox Code Playgroud)
我有EmptyClass加载LibClassLoader.
package com.demo;
public class EmptyClass {
}
Run Code Online (Sandbox Code Playgroud)
内存泄漏是由以下代码引起的:
final Context …Run Code Online (Sandbox Code Playgroud) android garbage-collection memory-leaks classloader native-code
native-code ×10
compilation ×3
java ×3
javascript ×3
.net ×2
android ×2
addr2line ×1
android-ndk ×1
c ×1
c# ×1
c++ ×1
classloader ×1
jquery ×1
jvm ×1
memory-leaks ×1
native ×1
profiling ×1
v8 ×1