如何防止Angular中的内存泄漏
我们的应用程序具有复杂而冗长的视图.一个视图具有大约50个具有自己服务,订阅和行为的组件.组件有自己的变量,包括数组和formgroup. 问题:从View2(Component2)导航到View1(Component1)之后,我仍然在Memory Tab中的Chrome DevTool中看到View2(Component2)的数据,并且每次在Snapshot中增加25 MB存储器. . eg: View1的首次快照 - > 50 MB 导航到View2.导航到View1->快照尺寸为75 MB 导航到View2.导航到View1->快照尺寸为100 MB 每次导航到View2时,它将加载时间增加4-5秒. 我正在清除View2的所有订阅,但是在浏览View1之后,它向我显示了所有数组和formGroup,view2组件,带有数据的变量. 我希望View1从View2导航后应该具有相同的大小. 我创建了小应用程序,结果是相同的, [![输入
0 2024-02-20
编程技术问答社区
增加gradle堆的大小
每当我尝试制作应用程序时,Gradle都会花费太多时间,并出现一条消息,表明您应该将Gradle尺寸提高到3072 MB,目前是910 MB.所以我的问题是如何增加Gradle的堆记忆? 解决方案 只需添加 android { .... dexOptions { // Prevent OutOfMemory with MultiDex during the build phase javaMaxHeapSize "4g" } } 在您的build.gradle文件中
2 2024-02-18
编程技术问答社区
Android Studio 1.3.1中的Java Heap大小错误
我最近将Android Studio从 1.2 更新为 1.3.1 . 更新Gradle Sync后,开始显示失败消息以增加Java堆的大小. 以下是错误的屏幕截图. tia 解决方案 转到安装其安装的Android Studio文件夹.有文件stduio.exe和studio64.exe,带有VMOPTIONS的文件类型,在记事本中打开它,您会看到这样的东西: -Xms512m -Xmx1280m -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=225m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Djna.nosys=true -Djna.boot.library.path= -Djna.debug_load=true -Djna.debug_load.jna=true -Dsun.io.useCanonCaches=false -Dj
0 2024-02-18
编程技术问答社区
如何使用android studio分析内存
最近从Eclipse切换到Android Studio.如何在Android Studio中查看应用程序堆和内存分配?在Eclipse中,我们有垫子中有什么工作室检查堆垃圾箱,Hprof文件? 解决方案 我将以一种步骤简单地解释它: 首先,您已经安装垫子( download )或使用: 酿造桶安装内存纳分析仪 在Android Studio中打开Android设备监视器或DDMS. 选择您的过程" com.example.etc .." 单击进程列表上方的更新堆. 在右侧面板中,选择"堆"选项卡. 单击原因GC. 单击进程列表上方的dump hprof文件. 当我们下载文件Hprof时,我们必须打开终端并运行此命令以生成文件以用垫子打开. 打开终端并运行此命令 ./hprof-conv path/file.hprof exitpath/heap-converted.hprof 命令" hprof-conv"位
0 2024-02-18
编程技术问答社区
通过httpPost上传base64图片到服务器的问题
我正在原型型应用程序,其中我使用JSON和HTTPPOST. 一切都可以在文本数据中效果. 现在,我在聚会上添加了图像,尽管我可以将图像作为base64字符串添加到我要发送的JSON中.我的图像是800 x 600像素,每个大小或多或少的500kb. 如果我将应用程序手动生成的JSON粘贴到网页上,那很好,我会得到我的图像和其他所有内容. 使用应用程序上传脚本,我尝试将一个带有4张图像的JSON字符串上传,但该应用程序陷入了我的进度对话框,并且LogCat一遍又一遍地继续显示: 11-15 14:32:27.809: I/dalvikvm-heap(15562): Grow heap (frag case) to 21.964MB for 2680048-byte allocation 11-15 14:32:27.840: D/dalvikvm(15562): GC_CONCURRENT freed 1744K, 30% free 20666K/29447K, pa
0 2024-02-15
编程技术问答社区
无效的堆地址和致命的信号 11
我的应用程序经常会崩溃,我的日志将读取: @@@ ABORTING: INVALID HEAP ADDRESS IN dlfree Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1) 有时code=2,但总是Fatal signal 11和invalid heap address. 我尝试研究这意味着什么以及如何解决它. 此线程是最有用的;但是,我仍然没有解决方案. 当我运行几个AsyncTasks下载几张图像时,发生错误. 这是我的主要AsyncTask public class FetchArtistImages extends AsyncTask implements Constants { private final WeakReference contextReference; public FetchArtistImages(
0 2024-02-13
编程技术问答社区
为什么Android 4.0 / Ice Cream Sandwich会分配这么多堆内存?
我注意到在我的星系联系上,android.content.res.Resources分配了约11MB.我在使用DDM和" Dump HPROF file"选项进行分析的过程中发现了这一点.因此,我花了两个小时试图查看分配是由于我的代码中的某些内容还是支持库.我删除了所有数据,大量的课程,所有库,但没有改变.在活动的开头将断点放置在我的代码中的断点之后,它表明已经存在11MB分配. 完全混淆后,我决定连接运行CM7的扎根角色颜色,以查看对完全相同应用程序的初始内存使用情况报告的内容.垫子报告的最坏情况"问题可疑"仅为896kb. IC是最重的?我在这里错过了什么吗?据我所知,我的应用程序正常运行,但是堆的用法表明97%的填充使我担心潜在的失败. 如果有帮助,MAT表示消耗所有内存的主要对象是位图,BitmapDrawables和NinePatchDrawables.我不明白这些分配来自哪里. 解决方案 pre-Honeycomb(Debug.getNativeHe
0 2024-02-12
编程技术问答社区
记忆缺失。ffmpeg库的Java堆空间错误
好吧,这是我遇到的错误: Out of memory: Java heap space. Please assign more memory to Gradle in the project's gradle.properties file. For example, the following line, in the gradle.properties file, sets the maximum Java heap size to 1,024 MB: org.gradle.jvmargs=-Xmx1024m 是因为: implementation 'nl.bravobit:android-ffmpeg:1.1.7' 当我删除错误发生时,错误是在说将堆大小增加到1024MB,而我确实将其增加到10GB,它仍无法正常工作.这是有线的. org.gradle.jvmargs=-Xmx10000m 仍然遇到相同的错误.此外也尝试了以下操作:
0 2024-02-11
编程技术问答社区
Android Studio错误 "Java堆空间"
我正在Android Studio中开发一个Android应用程序,今天突然,当我按"运行"按钮时,它不会编译.错误是: 错误:任务执行失败 ':app:packageinstantrunresourcesdebug'. Java堆空间 我已经尝试清洁项目并重建项目,但它不起作用. 解决方案 我尝试了许多解决方案,但最后,这帮助我解决了这个问题: - distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip 在您的" gradle-wrapper.properties"中使用此行.希望它也能帮助他人.
0 2024-02-11
编程技术问答社区
安卓内存不足错误--位图太大
在游戏中,我有一个位图映像,该图像可作为游戏背景(在画布上绘制).图像越大,游戏中的"空间"越多,用户可以进入,因此我希望位图尽可能大,而不会引起内存问题. 好吧,我去了船上,画了一个巨大的位图,这立即在初始化时立即导致记忆错误,所以我稍微缩小了位图.但是我认为它太小了.我的问题是如何测量所使用的内存的"安全"限制? 我使用以下方法并读取catlog中的输出: Debug.getNativeHeapAllocatedSize(); Log.v("MEMORY",String.valueOf(Debug.getNativeHeapAllocatedSize()) ); Log.v("FreeMEMORY",String.valueOf(Debug.getNativeHeapFreeSize ()) ); 结果是: 05-25 09:53:54.044: VERBOSE/MEMORY(23044): 9715624 0
2 2024-02-10
编程技术问答社区
为什么堆的大小不断增加?
我的应用程序具有很多连锁反应和动画. 我尝试在来回多个屏幕上,然后垃圾邮件单击按钮. 我注意到,即使某些屏幕已经关闭,堆尺寸也会不断上升. 当我检查堆转储时,保留最高堆的类是android.graphics.Bitmap类,指向我单击的所有按钮,具有连锁反应. 对按钮上的连锁反应只是简单的波纹,它使用?attr/selectableItemBackgroundBorderless作为背景.但是,每次点击带有波纹的按钮上都会上升0.3MB或0.5MB. 解决方案 可能是某种记忆的记忆.如果没有代码,几乎不可能分辨出问题在哪里.我建议一些测试. 您可以尝试泄漏金丝雀库. LIB可以"观察"细节对象并缩小搜索泄漏的搜索.
4 2024-02-10
编程技术问答社区
试图从eclipse运行android应用:卡在 "没有堆空间 "和 "创建jvm失败 "之间
我正在尝试从Eclipse启动Android应用程序.如果我的eclipse.ini包含 -startup plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502 -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m --launcher.defaultAction openFile -vmargs -Xms512m -Xmx512m 然后我得到"堆放空间".如果我将XMS保持在512时,将XMX增加到1024,则在启动Eclipse时,我将"无法创建JVM".如果我将XMS设置为1024,则Eclipse无法在没有任何错误消息的情况下启动. 我该怎么做才能使它工作?
0 2024-02-09
编程技术问答社区
安卓495KB的图像占用10MB的堆大小
我正在尝试将图像加载到具有495kb尺寸的应用中.如果我加载此图像,则堆尺寸从25MB增加到35MB,这会在我的应用程序中引起真实的内存问题.如果我不加载此图像,那么堆尺寸就保持在25MB.有人可以告诉为什么它要花这么多大小吗? 图像在下面 我用来加载图像的代码 InputStream s4 = getResources().openRawResource(R.drawable.parallax_layer4); FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT); System.gc(); if(bitmap4 != null) { bitmap4.recycle(); } s3
2 2024-02-09
编程技术问答社区
在将大数据流转换为字符串时,内存耗尽
我试图将大型流(4MB)转换为一个字符串,我最终将其转换为JSON数组. 当流大小很小(以kb为单位)时,每件事都可以正常工作时,它开始处理4MB流的那一刻,它耗尽了内存 下面是我用来将流转换为字符串的用途,我尝试了几乎所有事情,我怀疑问题与While循环有关.有人可以帮忙吗? public String convertStreamToString(InputStream is) throws IOException { if (is != null) { Writer writer = new StringWriter(); char[] buffer = new char[1024]; try { Reader reader = new BufferedReader(
0 2024-02-06
编程技术问答社区
Android BitmapFactory.Options.inSampleSize导致应用程序崩溃
我们正在使用一个捕获图像并将其转换为位图的Android应用程序,以发布到REST服务. 创建位图时,我们具有bitmapfactory.options.issample大小配置为4,并且除了HTC ONE以外,所有设备上都可以正常工作. HTC中的图像被扭曲了. 当我们将值更改为1时,它在HTC ONE上显示了一个好图像,但是由于内存问题,应用程序在所有其他设备上崩溃. 问题与可用的堆尺寸有关. HTC ONE在HTC One上显示扭曲的图像的原因是什么? 为什么应用程序在S3上崩溃,S3也具有相同的构建 16版的版本,但由于堆的尺寸不可用而崩溃. 为什么所有较低版本的手机(例如Droid)适合样品效果很好 大小为4. 什么是检查应用程序可用内存空间的最佳方法和 使用可用的位图工作. 当我们配置Android:在清单文件中的grounheap时,这似乎是有效的,但似乎不是一个可靠的解决方案. 我能够找到使用摄像头参数拍摄的图片的大小,然后得出位
4 2024-02-06
编程技术问答社区
安卓,我看到堆在增长,但我希望它停止。
我看到我的堆在增长,我知道它最终会在任何设备上崩溃,因为它一直在增长. Grow heap (frag case) 在整个日志中都可以看到 在我的手机上,它将以32MB使用的方式崩溃.当然,如果有很少的资源运行Android 2.2 ,其他电话当然是16MB 现在,我在整个应用程序 中使用recycle()在我的位图上使用recycle(),将事物设置为无效,从复杂的数据结构中弹出项目,并使用System.gc()调用垃圾收集 但是,堆仍然长大,这是一个问题...最终 我如何强制该应用程序转储资源,以便它可以继续运行. 通常总是超过"位图VM预算",但是我越来越感到我只是无法访问"清晰的位图VM"命令 解决方案 我在这个问题上也挣扎了很多.您可以做很多事情. 您可以在每个位图上调用回收利用并将其设置为空.(bitmap.recycle()使用此位图使用的所有内存,但不会使位图对象无效). you can also unbind
2 2024-02-05
编程技术问答社区
大图像的安卓虚拟堆策略
我正在操纵相对大图像,大约5MP,有时甚至更多.我需要两张图像的副本进行记忆进行操纵. 现在,加载的图像消耗了很多内存,远远超过默认的Android Heap(分别为16MB)24MB,这会导致以下错误: 11-20 18:02:28.984:E/Androidruntime(7334): java.lang.outofmemoryerror:位图大小超过VM预算 我需要完整的分辨率,因此在加载图像时缩小缩放无济于事. 解决这个问题的最佳解决方案是什么?是否有内置方法可以动态加载存储中的块位图?有人可以给我一些暗示我如何克服记忆问题,例如通过使用特定的缓存策略? 问: 解决方案 您可以在NDK中分配更多内存.您必须编写本机代码来操纵图像,否则您必须找出一种在本机中分配图像内存的方法,然后将其传递回Java. bitmap/canvas使用和NDK 另一个选项可能是将单个图像加载到内存中,并将其分解为块以进行处理.将这些块保存到文件系统中.因此,说您的
0 2024-02-05
编程技术问答社区
在尝试部署Android应用程序时,Eclipse崩溃,出现堆异常 - 内存不足
我有一个在部署时崩溃的Android项目.同一工作空间中的其他项目正常工作.我增加了我使用的AVD上的RAM使用率为1 GB.我认为没有内存泄漏,因为它似乎可以在其他人民计算机上使用. 我想使用内存探测器,但是在启动之前,项目崩溃了,我无法达到LogCat文件. 现在我正在使用Eclipse,有没有办法使用ANT或命令行启动它,在这里我可以逐步执行它并查找崩溃发生的位置? 任何帮助将不胜感激. 谢谢, 大卫 解决方案 David 例如,从eclipse.ini文件中增加vm参数中的日食的堆大小 -vmargs -Dosgi.requiredJavaVersion=1.5 -Xms40m -Xmx512m 您可以更改 之类的东西 -vmargs -Dosgi.requiredJavaVersion=1.5 -Xms512m -Xmx1024m -XX:PermSize=256M -XX:MaxP
0 2024-02-05
编程技术问答社区
安卓系统。内存不足的错误
当我将Android应用最小化约4或5次时,我总是会收到以下错误: 02-01 19:24:11.980: E/dalvikvm-heap(22362): Out of memory on a 3686416-byte allocation. 02-01 19:24:12.000: E/dalvikvm(22362): Out of memory: Heap Size=62755KB, Allocated=55237KB, Limit=65536KB 02-01 19:24:12.000: E/dalvikvm(22362): Extra info: Footprint=62435KB, Allowed Footprint=62755KB, Trimmed=2144KB 02-01 19:24:12.000: E/Bitmap_JNI(22362): Create Bitmap Failed. 02-01 19:24:12.000: E/Bitmap_JNI(22362):
10 2024-02-05
编程技术问答社区
安卓系统增长了一堆,我应该担心吗?
我读了一些有关在正面时具有16MB内存"保留"的应用程序的内容. 至少,作为开发人员,我应该依靠这一点,即使取决于设备可能更多. 我要支持2.2 Froyo,因此许多设备不会是高端设备. 我在logcat中收到一些消息: 03-29 14:08:51.570: I/dalvikvm-heap(19899): Grow heap (frag case) to 13.624MB for 200765-byte allocation 令我担心的是13MB.我不知道如果我的应用程序达到16MB,我的应用程序是否会崩溃.我应该认真考虑优化一些代码吗? 解决方案 Android内存管理并不是那么微不足道,在内存使用方面,您应始终保持尽可能低的状态. 每个Android设备的内存量有限.在大多数情况下,它与屏幕尺寸,CPU计算功率和其他一些有关(例如3D屏幕在某些情况下需要两倍的内存). Nexus One具有32MB,Galaxy Nexus -64MB,片剂可以具有
2 2024-02-05
编程技术问答社区