我如何分析 nativescript angular 应用程序的导航滞后和内存不足问题?
How do i profiling navigation lag and out of memory issue on nativescript angular apps?
我为 android 构建 nativescript angular 应用程序,具有如下依赖项
"nativescript-angular": "^7.2.2",
"nativescript-background-http": "^3.4.0",
"nativescript-bitmap-factory": "^1.7.1",
"nativescript-camera": "^4.2.0",
"nativescript-cardview": "^3.1.1",
"nativescript-directions": "^1.3.0",
"nativescript-drawingpad": "^3.0.4",
"nativescript-fancyalert": "^3.0.6",
"nativescript-filterable-listpicker": "^2.2.3",
"nativescript-fresco": "^5.2.0",
"nativescript-geolocation": "^5.0.0",
"nativescript-imagepicker": "^6.1.2",
"nativescript-modal-datetimepicker": "^1.1.12",
"nativescript-ngx-shadow": "^6.4.0",
"nativescript-photoviewer": "^1.5.0",
"nativescript-plugin-firebase": "^8.0.0",
"nativescript-theme-core": "~1.0.4",
"nativescript-ui-autocomplete": "^4.0.0",
"nativescript-ui-chart": "^4.0.0",
"nativescript-ui-listview": "^6.0.0",
"reflect-metadata": "^0.1.13",
"rxjs": "^6.4.0",
"tns-core-modules": "^5.2.2",
"tns-platform-declarations": "^5.2.2",
"typescript": "~3.1.1",
"zone.js": "^0.8.29"
这些应用程序包含 5 个选项卡和用于拍照的按钮。
有 2 个主要问题
- 当用户从一个选项卡导航到另一个选项卡时,应用程序将随机显示 "peekState" 个错误。
- 当用户使用相机拍摄 2 张或更多照片时,应用程序将崩溃并出现 java.OutOfmemory 异常
以下是我已经尝试过的一些更改
- 使用 BmpImageFactory 将来自相机的图像调整为更小的尺寸
- 使用 Nativescript Fresco 加载图像
- 清空用于保存 imageSource 的变量
- 从选项卡导航中删除动画
请指教如何找到导航延迟和内存不足问题的原因?
您可以使用 timeline-view 分析您的应用,以 HTML 了解您的应用中哪些内容占用了大量时间。
对于图像,您是否将其保存在磁盘上?您可以将内存限制为一张图片,在保存之前调整它的大小以减少使用的磁盘 space 大小,然后在需要时有一个单独的流程来使用它。
您还可以使用 Android Studio 分析 RAM 使用情况,以查看您的应用程序中是否存在大量 leak/abnormal 内存使用情况。
我为 android 构建 nativescript angular 应用程序,具有如下依赖项
"nativescript-angular": "^7.2.2",
"nativescript-background-http": "^3.4.0",
"nativescript-bitmap-factory": "^1.7.1",
"nativescript-camera": "^4.2.0",
"nativescript-cardview": "^3.1.1",
"nativescript-directions": "^1.3.0",
"nativescript-drawingpad": "^3.0.4",
"nativescript-fancyalert": "^3.0.6",
"nativescript-filterable-listpicker": "^2.2.3",
"nativescript-fresco": "^5.2.0",
"nativescript-geolocation": "^5.0.0",
"nativescript-imagepicker": "^6.1.2",
"nativescript-modal-datetimepicker": "^1.1.12",
"nativescript-ngx-shadow": "^6.4.0",
"nativescript-photoviewer": "^1.5.0",
"nativescript-plugin-firebase": "^8.0.0",
"nativescript-theme-core": "~1.0.4",
"nativescript-ui-autocomplete": "^4.0.0",
"nativescript-ui-chart": "^4.0.0",
"nativescript-ui-listview": "^6.0.0",
"reflect-metadata": "^0.1.13",
"rxjs": "^6.4.0",
"tns-core-modules": "^5.2.2",
"tns-platform-declarations": "^5.2.2",
"typescript": "~3.1.1",
"zone.js": "^0.8.29"
这些应用程序包含 5 个选项卡和用于拍照的按钮。 有 2 个主要问题
- 当用户从一个选项卡导航到另一个选项卡时,应用程序将随机显示 "peekState" 个错误。
- 当用户使用相机拍摄 2 张或更多照片时,应用程序将崩溃并出现 java.OutOfmemory 异常
以下是我已经尝试过的一些更改
- 使用 BmpImageFactory 将来自相机的图像调整为更小的尺寸
- 使用 Nativescript Fresco 加载图像
- 清空用于保存 imageSource 的变量
- 从选项卡导航中删除动画
请指教如何找到导航延迟和内存不足问题的原因?
您可以使用 timeline-view 分析您的应用,以 HTML 了解您的应用中哪些内容占用了大量时间。
对于图像,您是否将其保存在磁盘上?您可以将内存限制为一张图片,在保存之前调整它的大小以减少使用的磁盘 space 大小,然后在需要时有一个单独的流程来使用它。
您还可以使用 Android Studio 分析 RAM 使用情况,以查看您的应用程序中是否存在大量 leak/abnormal 内存使用情况。