问题标签 [systrace]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - React-native Android Systrace HTML 在 Ubuntu 14.04 中为空白
我使用 Android SDK 中的 systrace.py util 将我的基于 React-Native 的 Android 应用程序的痕迹收集到了一个 html 文件中。当我在 Chrome 50.0.2661.86(64 位)或 Firefox 45.0.2 中打开此 html 跟踪文件时,我在开发人员控制台中看到空白屏幕和一些 JavaScript 错误。操作系统 Ubuntu 14.04 64 位操作系统。
但是,在我的 Windows 机器上,在 Chrome 49.0.2623.112 中正确呈现了 html 跟踪而没有错误。
谁能帮我解决这个问题?
android - 由于 SELinux,Systrace 不再适用于 Marshmallow 中的 Nexus 6?有没有人让它再次工作?
我曾经能够在我的 Nexus 6 上运行 systrace,但最近它停止工作(可能是在最近的每月更新之一之后):systrace 挂起,试图从我的设备上下载跟踪。
在adb logcat
,我看到一堆像
我知道 systrace 使用debugfs
,这似乎是 SELinux 权限问题(请参阅https://source.android.com/security/selinux/validate.html)。有没有人让这个再次工作?
android - 我使用 android Systrace 工具创建 trace.html,chrome 无法打开它
我使用chrome打开android设备监视器生成的trace.html,它显示为空白。如何设置我的 chrome?
javascript - React Native Android Systrace JS 标记支持
React 本机 Android JS 级别标记不如 IOS 中的有用(请参阅https://www.youtube.com/watch?v=0MlT74erp60)。
从 RN 0.29-stable 开始,我在 github 上的 React native repo 上观察到了几件事。
1)登录到 Systrace.js, _enabled 对于 android 始终为 false(android 在 Java 端有代码 onTraceStarted 但从未被触发)。与 IOS 相比,_enabled 由开发选项对话框控制。
2) Systrace.js 使用全局安装的函数:nativeTraceBeginSection 和其他函数来显示标记,这些标记是为 IOS 全局安装的,但不适用于 Android。看到jscexecutor对应的android jni文件,大概可以利用
安装全局函数来做tracebeginsection和其他功能。
是否有任何其他见解或方法可以在 android 中更好地分析 react-native ?
android - React Native 分析。Systrace 未显示 JS 和本机模块线程
我已按照Profiling Android UI Performance的指南进行操作
我运行以下 cmd:/usr/local/Cellar/android-sdk/24.4.1_1/platform-tools/systrace/systrace.py --time=10 -o trace.html shred gfx view -a com.navigation。
我能够获得跟踪输出。但是 Js 和 Native Modules 线程不可用,如指南中所述。
我已尝试使用指南中所述的 dev=false 和此答案中提到的 dev=true 运行跟踪,但非正常工作
我目前使用的是 0.28.0 版本。我之前没有尝试在项目中使用 systrace,所以不知道它是否有效。
非常感谢任何为什么没有显示的想法。
android - 双缓冲减慢帧渲染 | 系统跟踪分析
我正在使用自定义视图画布绘图 (postInvalidate()) 和HardwareAcceleration进行简单的 2D 游戏。经过数周的性能分析,我决定通过 Interface Choreographer.FrameCallback将我的更新和绘图操作与 VSYNC 脉冲同步。我认为这是获得平稳运动的正确方法。
然而,我仍然经历波涛汹涌的运动。我用systrace对其进行了分析,发现这与我的 BufferQueue 有关。一旦双缓冲开始,帧时间就会超过 16 毫秒。我做了一些解释的跟踪截图:
整个draw操作等待SurfaceFlinger(消费者)的buffer释放,将自己新的空Buffer出列。
你能告诉我这是否是一种常规行为或可能是什么原因?
android - Android 应用首次启动很慢,systrace 显示 30 秒的 bindApplication
我目前正在开发一个 Android 应用程序并试图改善启动时间。为此,我使用了Systrace工具。
我第一次运行该应用程序(安装后立即),启动大约需要 40 秒,我得到这个跟踪:
如您所见,有一个 30 秒的浅紫色标签,带有 title bindApplication
。
在此之后,我关闭了应用程序(从最近的活动中删除)并重新打开它。这次bindApplication
标签只有 4 秒长:
- 有人知道第一次运行需要这么长时间是否正常?
- 我能做些什么来改进它?
我的猜测是这bindApplication
在某种程度上与onCreate
App 方法中的繁重工作有关,但我不知道这是怎么发生的。以防万一:在我onCreate
初始化以下库:Parse、Crashlytics、Timber、ParseFacebookUtils 和 Google Analytics。
编辑:
这是 App 子类代码:
ddms - Systrace - 截断 /sys/kernel/debug/tracing/set_ftrace_filter 时出错:没有这样的设备 (19) 无法启动
我目前正在做一个项目,旨在找出系统在 android UI 上的一系列用户交互背后做了什么。例如,如果用户单击 Facebook Messenger 中的发送按钮,则测量的此类操作的响应时间为 1.2 秒。我的目标是弄清楚 1.2 秒是由什么组成的。我的朋友建议我看看“Systrace”。
但是,当我在我的 HTC one M8 上尝试 systrace 时,我遇到了一些问题:首先,打开 /sys/kernel/debug/tracing/options/overwrite 时出错 - 没有这样的文件或目录。我通过在http://opensourceforu.com/2010/11/kernel-tracing-with-ftrace-part-1/和 mount -t debugfs none /sys/kernel/debug之后建立内核支持解决了这个问题。然后我可以找到跟踪目录。此外,我在 Ramdisk 中的 default.prop 文件中设置了 ro.debuggable=1 并将 boot.img 刻录到我的手机中。
现在又遇到一个问题:当我运行-python systrace.py --time=10 -o mynewtrace.html sched gfx view wm时,弹出如下错误(19):error truncating /sys/kernel/debug/tracing/set_ftrace_filter : 没有这样的设备 (19)。我不知道我为 systrace 建立内核支持的方式是否不正确或是否缺少任何东西。
有人可以帮我解决这个问题吗?
android - 不应该为 RecyclerView 项目视图使用数据绑定吗?
我目前正在研究为什么我的一些 RecyclerViews 表现不佳。UI 滞后,尤其是在需要绘制视图的全部内容时。
使用 systrace 我遇到了一个大框架,RecyclerView 在其中布局其视图:
如您所见,重复绘制相同的视图。在 systrace 中,我在 RecyclerView 框架上找到了以下描述:
OnLayout has been called by the View system. If this shows up too many times in Systrace, make sure the children of RecyclerView do not update themselves directly. This will cause a full re-layout but when it happens via the Adapter notifyItemChanged, RecyclerView can avoid full layout calculation.
我的 RecyclerView 的视图正在使用带有可观察值的谷歌数据绑定。
意思是更新我不使用的 TextViewtextView.setText(titleTxt)
但title.set(titleTxt)
wheretitle
将是 type ObservableField<String>
。
所以显然我没有调用notifyItemChanged
,而只是更新绑定到布局的对象上的可观察字段。
在这种情况下使用数据绑定是错误的吗?如果是这样,那么数据绑定的意义何在?移动 UI 主要由列表组成。