草庐IT

安卓崩溃/系统/lib/libhwui.so

coder 2023-11-22 原文

我有时会遇到崩溃,似乎是 jni 崩溃,但我的应用程序没有任何 jni 代码。它是一个图形应用程序,会加载一些图片。

谁能告诉我如何找到问题所在。 libhwui.so 是什么。

 I/DEBUG   (  141): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 000000e8
I/DEBUG   (  141):  r0 ffffffff  r1 000000e8  r2 00000000  r3 00000000
I/DEBUG   (  141):  r4 ffffffff  r5 000000e8  r6 018fea18  r7 018fe9c8
I/DEBUG   (  141):  r8 40baa190  r9 018fea40  10 0000001c  fp 0000001c
I/DEBUG   (  141):  ip 40bab590  sp be818c98  lr 4005510c  pc 4005510c  cpsr 68000010
I/DEBUG   (  141):  d0  4300000043000000  d1  44d0000043000000
I/DEBUG   (  141):  d2  41d0000000000040  d3  4000000000000002
I/DEBUG   (  141):  d4  4000000040200000  d5  4000000000000002
I/DEBUG   (  141):  d6  4000000040000000  d7  0000000000000000
I/DEBUG   (  141):  d8  43e6000040000000  d9  403c800000000000
I/DEBUG   (  141):  d10 403c800000000000  d11 4038000000000000
I/DEBUG   (  141):  d12 447a000042363498  d13 3f6ed2573c23d700
I/DEBUG   (  141):  d14 3f4959923ed2d2d3  d15 00000000c1600000
I/DEBUG   (  141):  d16 c000000000000000  d17 c000000000000000
I/DEBUG   (  141):  d18 4000000000000000  d19 0000000000000000
I/DEBUG   (  141):  d20 3ff0000000000000  d21 8000000000000000
I/DEBUG   (  141):  d22 c000000000000000  d23 0000000000000000
I/DEBUG   (  141):  d24 0000000000000000  d25 3fca515880000000
I/DEBUG   (  141):  d26 0000000000000000  d27 3fca515880000000
I/DEBUG   (  141):  d28 0000000000000000  d29 3ff0000000000000
I/DEBUG   (  141):  d30 0000000000000000  d31 3ff0000000000000
I/DEBUG   (  141):  scr 68000013
I/DEBUG   (  141): 
I/DEBUG   (  141):          #00  pc 0000510c  /system/lib/libcutils.so (android_atomic_add)
I/DEBUG   (  141):          #01  pc 0000ae3e  /system/lib/libhwui.so
I/DEBUG   (  141):          #02  pc 0000ae4e  /system/lib/libhwui.so
I/DEBUG   (  141):          #03  pc 000162f2  /system/lib/libhwui.so
I/DEBUG   (  141):          #04  pc 000163a6  /system/lib/libhwui.so
I/DEBUG   (  141):          #05  pc 000226a0  /system/lib/libutils.so (_ZN7android10VectorImpl5_growEjj)
I/DEBUG   (  141):          #06  pc 000226d2  /system/lib/libutils.so (_ZN7android10VectorImpl8insertAtEPKvjj)
I/DEBUG   (  141):          #07  pc 0002280e  /system/lib/libutils.so (_ZN7android16SortedVectorImpl3addEPKv)
I/DEBUG   (  141):          #08  pc 00016874  /system/lib/libhwui.so
I/DEBUG   (  141): 
I/DEBUG   (  141): code around pc:
I/DEBUG   (  141): 400550ec e1853f92 e3530000 1afffffa e8bd8070  .?....S.....p...
I/DEBUG   (  141): 400550fc e92d4070 e1a04000 e1a05001 ebffffd1  p@-..@...P......
I/DEBUG   (  141): 4005510c e1950f9f e0802004 e1853f92 e3530000  ..... ...?....S.
I/DEBUG   (  141): 4005511c 1afffffa e8bd8070 e1a01000 e3e00000  ....p...........
I/DEBUG   (  141): 4005512c eafffff2 e1a01000 e3a00001 eaffffef  ................
I/DEBUG   (  141): 
I/DEBUG   (  141): stack:
I/DEBUG   (  141):     be818c58  01887204  [heap]
I/DEBUG   (  141):     be818c5c  be818db8  [stack]
I/DEBUG   (  141):     be818c60  00000000  
I/DEBUG   (  141):     be818c64  00000002  
I/DEBUG   (  141):     be818c68  00000368  
I/DEBUG   (  141):     be818c6c  00000000  
I/DEBUG   (  141):     be818c70  00000310  
I/DEBUG   (  141):     be818c74  00000000  
I/DEBUG   (  141):     be818c78  014d84e0  [heap]
I/DEBUG   (  141):     be818c7c  0000001c  
I/DEBUG   (  141):     be818c80  00000310  
I/DEBUG   (  141):     be818c84  0000001c  
I/DEBUG   (  141):     be818c88  00001906  
I/DEBUG   (  141):     be818c8c  400cee59  /system/lib/libc.so
I/DEBUG   (  141):     be818c90  df0027ad  
I/DEBUG   (  141):     be818c94  00000000  
I/DEBUG   (  141): #00 be818c98  000000e8  
I/DEBUG   (  141):     be818c9c  0000004d  
I/DEBUG   (  141):     be818ca0  018fea18  [heap]
I/DEBUG   (  141):     be818ca4  40b92e41  /system/lib/libhwui.so
I/DEBUG   (  141): #01 be818ca8  01856aa8  [heap]
I/DEBUG   (  141):     be818cac  40b92e53  /system/lib/libhwui.so

我看到了一次崩溃

I/DEBUG   (10037): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
I/DEBUG   (10037):  r0 deadbaad  r1 00000001  r2 40000000  r3 00000000
I/DEBUG   (10037):  r4 00000000  r5 00000027  r6 400f34c8  r7 401025d8
I/DEBUG   (10037):  r8 0146dc68  r9 40102598  10 5bdf7b8c  fp 5bdf7c24
I/DEBUG   (10037):  ip ffffffff  sp 5bdf79e8  lr 400d45c9  pc 400d0958  cpsr 60000030
I/DEBUG   (10037):  d0  72656c69706d6f43  d1  726f7470008ed744
I/DEBUG   (10037):  d2  617369646f6e5f57  d3  6f6c6f685f656c50
I/DEBUG   (10037):  d4  9933333399333333  d5  9933333399333333
I/DEBUG   (10037):  d6  00d2aff099333333  d7  000000434e5f30de
I/DEBUG   (10037):  d8  0000000000000000  d9  0000000000000000
I/DEBUG   (10037):  d10 0000000000000000  d11 0000000000000000
I/DEBUG   (10037):  d12 0000000000000000  d13 0000000000000000
I/DEBUG   (10037):  d14 0000000000000000  d15 0000000000000000
I/DEBUG   (10037):  d16 0000000700000001  d17 40c4400000000000
I/DEBUG   (10037):  d18 4146605000000000  d19 bfb1be5a93a83e1d
I/DEBUG   (10037):  d20 3f1155e54e7e8408  d21 bebbbc6c1a570a20
I/DEBUG   (10037):  d22 3ff0000000000000  d23 3fede16b9c24a98f
I/DEBUG   (10037):  d24 3e66376972bea4d0  d25 3fc39a09d078c69f
I/DEBUG   (10037):  d26 0000000000000000  d27 0000000000000000
I/DEBUG   (10037):  d28 0000000000000000  d29 0000000000000000
I/DEBUG   (10037):  d30 0000000000000000  d31 0000000000000000
I/DEBUG   (10037):  scr 80000012
I/DEBUG   (10037): 
D/ti_hwc  (  142): [handle_uevents] :: Uevent : change@/devices/platform/omap/omap_i2c.1/i2c-1/1-0049/twl6030_bci/power_supply/battery
D/PowerManagerService(  292): mPowerState = SCREEN_BRIGHT_BIT SCREEN_ON_BIT 
I/DEBUG   (10037):          #00  pc 00017958  /system/lib/libc.so
I/DEBUG   (10037):          #01  pc 000137e2  /system/lib/libc.so
I/DEBUG   (10037):          #02  pc 00015b20  /system/lib/libc.so (dlfree)
I/DEBUG   (10037):          #03  pc 00016198  /system/lib/libc.so (free)
I/DEBUG   (10037):          #04  pc 000009bc  /system/lib/libstdc++.so (_ZdlPvRKSt9nothrow_t)
I/DEBUG   (10037):          #05  pc 00016afe  /system/lib/libhwui.so
I/DEBUG   (10037):          #06  pc 00016b10  /system/lib/libhwui.so
I/DEBUG   (10037):          #07  pc 0001640a  /system/lib/libhwui.so
I/DEBUG   (10037):          #08  pc 00016bc4  /system/lib/libhwui.so
I/DEBUG   (10037):          #09  pc 0000d752  /system/lib/libhwui.so
I/DEBUG   (10037):          #10  pc 0000d8e0  /system/lib/libhwui.so (_ZN7android10uirenderer11DisplayListD1Ev)
I/DEBUG   (10037):          #11  pc 0005e896  /system/lib/libandroid_runtime.so
I/DEBUG   (10037):          #12  pc 0001edb0  /system/lib/libdvm.so (dvmPlatformInvoke)
I/DEBUG   (10037):          #13  pc 000590f4  /system/lib/libdvm.so (_Z16dvmCallJNIMethodPKjP6JValuePK6MethodP6Thread)
I/DEBUG   (10037): 
I/DEBUG   (10037): code around pc:
I/DEBUG   (10037): 400d0938 4623b15c 2c006824 e026d1fb b12368db  \.#F$h.,..&..h#.
I/DEBUG   (10037): 400d0948 21014a17 6011447a 48124798 24002527  .J.!zD.`.G.H'%.$
I/DEBUG   (10037): 400d0958 f7f47005 2106eeb4 ef50f7f5 460aa901  .p.....!..P....F
I/DEBUG   (10037): 400d0968 f04f2006 94015380 94029303 eb0cf7f5  . O..S..........
I/DEBUG   (10037): 400d0978 4622a905 f7f52002 f7f4eb16 2106eea0  .."F. .........!
I/DEBUG   (10037): 
I/DEBUG   (10037): code around lr:
I/DEBUG   (10037): 400d45a8 41f0e92d 46804c0c 447c2600 68a56824  -..A.L.F.&|D$h.h
I/DEBUG   (10037): 400d45b8 e0076867 300cf9b5 dd022b00 47c04628  gh.....0.+..(F.G
I/DEBUG   (10037): 400d45c8 35544306 37fff117 6824d5f4 d1ee2c00  .CT5...7..$h.,..
I/DEBUG   (10037): 400d45d8 e8bd4630 bf0081f0 00028f96 41f0e92d  0F..........-..A
I/DEBUG   (10037): 400d45e8 fb01b086 9004f602 461f4815 4615460c  .........H.F.F.F
I/DEBUG   (10037): 
I/DEBUG   (10037): memory map around addr deadbaad:
I/DEBUG   (10037): be7f9000-be81a000 [stack]
I/DEBUG   (10037): (no map for address)
I/DEBUG   (10037): ffff0000-ffff1000 [vectors]
I/DEBUG   (10037): 
I/DEBUG   (10037): stack:
I/DEBUG   (10037):     5bdf79a8  00000001  
I/DEBUG   (10037):     5bdf79ac  5bdf79e8  
I/DEBUG   (10037):     5bdf79b0  400fd840  /system/lib/libc.so
I/DEBUG   (10037):     5bdf79b4  0000000c  
I/DEBUG   (10037):     5bdf79b8  400fd7d4  /system/lib/libc.so
I/DEBUG   (10037):     5bdf79bc  401028c8  
I/DEBUG   (10037):     5bdf79c0  00000000  
I/DEBUG   (10037):     5bdf79c4  400d45c9  /system/lib/libc.so
I/DEBUG   (10037):     5bdf79c8  00000000  
I/DEBUG   (10037):     5bdf79cc  5bdf79fc  
I/DEBUG   (10037):     5bdf79d0  400f34c8  /system/lib/libc.so
I/DEBUG   (10037):     5bdf79d4  401025d8  
I/DEBUG   (10037):     5bdf79d8  0146dc68  [heap]
I/DEBUG   (10037):     5bdf79dc  400d3735  /system/lib/libc.so
I/DEBUG   (10037):     5bdf79e0  df0027ad  
I/DEBUG   (10037):     5bdf79e4  00000000  
I/DEBUG   (10037): #00 5bdf79e8  5bdf79e4  
I/DEBUG   (10037):     5bdf79ec  00000001  
I/DEBUG   (10037):     5bdf79f0  400f34ac  /system/lib/libc.so
I/DEBUG   (10037):     5bdf79f4  00000005  
I/DEBUG   (10037):     5bdf79f8  5bdf7a14  
I/DEBUG   (10037):     5bdf79fc  fffffbdf  
I/DEBUG   (10037):     5bdf7a00  5bdf7a14  
I/DEBUG   (10037):     5bdf7a04  5bdf7a14  
I/DEBUG   (10037):     5bdf7a08  400f6a64  /system/lib/libc.so
I/DEBUG   (10037):     5bdf7a0c  400cc7e7  /system/lib/libc.so
I/DEBUG   (10037): #01 5bdf7a10  5bdf7ae8  
I/DEBUG   (10037):     5bdf7a14  20404040  
I/DEBUG   (10037):     5bdf7a18  524f4241  /dev/ashmem/dalvik-mark-stack (deleted)
I/DEBUG   (10037):     5bdf7a1c  474e4954  /dev/ashmem/dalvik-heap (deleted)
I/DEBUG   (10037):     5bdf7a20  4e49203a  /dev/ashmem/dalvik-heap (deleted)
I/DEBUG   (10037):     5bdf7a24  494c4156  /dev/ashmem/dalvik-heap (deleted)
I/DEBUG   (10037):     5bdf7a28  45482044  /dev/ashmem/dalvik-heap (deleted)
I/DEBUG   (10037):     5bdf7a2c  41205041  /dev/ashmem/dalvik-heap (deleted)
I/DEBUG   (10037):     5bdf7a30  45524444  /dev/ashmem/dalvik-heap (deleted)
I/DEBUG   (10037):     5bdf7a34  49205353  /dev/ashmem/dalvik-heap (deleted)
I/DEBUG   (10037):     5bdf7a38  6c64204e  
I/DEBUG   (10037):     5bdf7a3c  65657266  
I/DEBUG   (10037):     5bdf7a40  01417700  [heap]
I/DEBUG   (10037):     5bdf7a44  4034d558  /system/lib/libcrypto.so
I/DEBUG   (10037):     5bdf7a48  013648c8  [heap]
I/DEBUG   (10037):     5bdf7a4c  401025c0  
I/DEBUG   (10037):     5bdf7a50  00000068  
I/DEBUG   (10037):     5bdf7a54  40102588  
I/DEBUG   (10037):     5bdf7a58  014186c8  [heap]
I/DEBUG   (10037):     5bdf7a5c  40102588  
I/DEBUG   (10037):     5bdf7a60  40354c80  /system/lib/libcrypto.so
I/DEBUG   (10037):     5bdf7a64  400ceb39  /system/lib/libc.so
I/DEBUG   (10037):     5bdf7a68  409054aa  /system/lib/libdvm.so
I/DEBUG   (10037):     5bdf7a6c  4034d558  /system/lib/libcrypto.so
I/DEBUG   (10037):     5bdf7a70  5bdf7b20  
I/DEBUG   (10037):     5bdf7a74  00000000  
I/DEBUG   (10037):     5bdf7a78  5bdf7b28  
I/DEBUG   (10037):     5bdf7a7c  40354c80  /system/lib/libcrypto.so
I/DEBUG   (10037):     5bdf7a80  40354c80  /system/lib/libcrypto.so
I/DEBUG   (10037):     5bdf7a84  400cf19b  /system/lib/libc.so
I/DEBUG   (10037):     5bdf7a88  409054aa  /system/lib/libdvm.so
I/DEBUG   (10037):     5bdf7a8c  402c79df  /system/lib/libcrypto.so
I/DEBUG   (10037):     5bdf7a90  5bdf7b40  
I/DEBUG   (10037):     5bdf7a94  402cacf7  /system/lib/libcrypto.so
I/DEBUG   (10037):     5bdf7a98  01364880  [heap]
I/DEBUG   (10037):     5bdf7a9c  40102608  
I/DEBUG   (10037):     5bdf7aa0  013b5e00  [heap]
I/DEBUG   (10037):     5bdf7aa4  401025c0  
I/DEBUG   (10037):     5bdf7aa8  00000068  
I/DEBUG   (10037):     5bdf7aac  401025a0  
I/DEBUG   (10037):     5bdf7ab0  409054aa  /system/lib/libdvm.so
I/DEBUG   (10037):     5bdf7ab4  401025a8  
I/DEBUG   (10037):     5bdf7ab8  5bdf7b68  
I/DEBUG   (10037):     5bdf7abc  0145c410  [heap]
I/DEBUG   (10037):     5bdf7ac0  00000009  
I/DEBUG   (10037):     5bdf7ac4  40102558  
I/DEBUG   (10037):     5bdf7ac8  00000000  
I/DEBUG   (10037):     5bdf7acc  400cdcd5  /system/lib/libc.so
I/DEBUG   (10037):     5bdf7ad0  013c2758  [heap]
I/DEBUG   (10037):     5bdf7ad4  40102590  
I/DEBUG   (10037):     5bdf7ad8  00000038  
I/DEBUG   (10037):     5bdf7adc  40102534  
I/DEBUG   (10037):     5bdf7ae0  0145f8d8  [heap]
I/DEBUG   (10037):     5bdf7ae4  40102580  
I/DEBUG   (10037):     5bdf7ae8  0146c5d0  [heap]
I/DEBUG   (10037):     5bdf7aec  0146c5f0  [heap]
I/DEBUG   (10037):     5bdf7af0  00000001  
I/DEBUG   (10037):     5bdf7af4  40102558  
I/DEBUG   (10037):     5bdf7af8  5bdf7b8c  
I/DEBUG   (10037):     5bdf7afc  400cdcd5  /system/lib/libc.so
I/DEBUG   (10037):     5bdf7b00  012fb8d8  [heap]
I/DEBUG   (10037):     5bdf7b04  012fb928  [heap]
I/DEBUG   (10037):     5bdf7b08  01479db0  [heap]
I/DEBUG   (10037):     5bdf7b0c  00000035  
I/DEBUG   (10037):     5bdf7b10  011a31e4  [heap]
I/DEBUG   (10037):     5bdf7b14  1c5bddbe  
I/DEBUG   (10037):     5bdf7b18  01479d68  [heap]
I/DEBUG   (10037):     5bdf7b1c  01479de8  [heap]
I/DEBUG   (10037):     5bdf7b20  00000080  
I/DEBUG   (10037):     5bdf7b24  400ceb25  /system/lib/libc.so

最佳答案

我知道这是一篇旧帖子,但我长期以来一直在与类似的崩溃作斗争,最近才找到根本原因。以下是关于我的崩溃的更多花絮:

  • 崩溃可能在 libhwui.so、libskia.so、libutils.so 或 libc.so 中
  • 应用未使用 NDK
  • 与设备高度相关。三星 S6/S7 和 Nexus 5 有很多实例。从未见过旧京瓷的崩溃

由于我的应用程序也没有 native 代码,因此堆栈转储/逻辑删除文件没有引用我的任何代码。通过临时测试,我将问题的根源缩小到应用程序中的自定义 ProgressBar。

ProgressBar 在底层利用了 TimerTask!值得庆幸的是,我最近遇到了 this post在研究其他东西的同时。

将代码更改为处理程序,此后就再也没有发生过崩溃!希望这对其他人有帮助。

关于安卓崩溃/系统/lib/libhwui.so,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19614526/

有关安卓崩溃/系统/lib/libhwui.so的更多相关文章

  1. ruby - 检查 "command"的输出应该包含 NilClass 的意外崩溃 - 2

    为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar

  2. Ruby Readline 在向上箭头上使控制台崩溃 - 2

    当我在Rails控制台中按向上或向左箭头时,出现此错误:irb(main):001:0>/Users/me/.rvm/gems/ruby-2.0.0-p247/gems/rb-readline-0.4.2/lib/rbreadline.rb:4269:in`blockin_rl_dispatch_subseq':invalidbytesequenceinUTF-8(ArgumentError)我使用rvm来管理我的ruby​​安装。我正在使用=>ruby-2.0.0-p247[x86_64]我使用bundle来管理我的gem,并且我有rb-readline(0.4.2)(人们推荐的最少

  3. ruby-on-rails - 使用 config.threadsafe 时从 lib/加载模块/类的正确方法是什么!选项? - 2

    我一直致力于让我们的Rails2.3.8应用程序在JRuby下正确运行。一切正常,直到我启用config.threadsafe!以实现JRuby提供的并发性。这导致lib/中的模块和类不再自动加载。使用config.threadsafe!启用:$rubyscript/runner-eproduction'pSim::Sim200Provisioner'/Users/amchale/.rvm/gems/jruby-1.5.1@web-services/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:105:in`co

  4. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  5. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  6. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  7. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  8. ruby - 在没有基准或时间的情况下用 Ruby 测量用户时间或系统时间 - 2

    因为我现在正在做一些时间测量,我想知道是否可以在不使用Benchmark类或命令行实用程序time的情况下测量用户时间或系统时间。使用Time类只显示挂钟时间,而不显示系统和用户时间,但是我正在寻找具有相同灵active的解决方案,例如time=TimeUtility.now#somecodeuser,system,real=TimeUtility.now-time原因是我有点不喜欢Benchmark,因为它不能只返回数字(编辑:我错了-它可以。请参阅下面的答案。)。当然,我可以解析输出,但感觉不对。*NIX系统的time实用程序也应该可以解决我的问题,但我想知道是否已经在Ruby中实

  9. ruby - 以毫秒为单位获取当前系统时间 - 2

    在Ruby中,以毫秒为单位获取自纪元(1970)以来的当前系统时间的正确方法是什么?我试过了Time.now.to_i,好像不是我想要的结果。我需要结果显示毫秒并且使用long类型,而不是float或double。 最佳答案 (Time.now.to_f*1000).to_iTime.now.to_f显示包含十进制数字的时间。要获得毫秒数,只需将时间乘以1000。 关于ruby-以毫秒为单位获取当前系统时间,我们在StackOverflow上找到一个类似的问题:

  10. ruby-on-rails - Rails 2.3.5 : How does one access code inside of lib/directory/file. rb? - 2

    我创建了一个文件,这样我就可以在lib/foo/bar_woo.rb中的许多模型之间共享一个方法。在bar_woo.rb中,我定义了以下内容:moduleBarWoodefhelloputs"hello"endend然后在我的模型中我正在做类似的事情:defMyModel解释器提示它期望bar_woo.rb定义Foo::BarWoo。《使用Rails进行敏捷Web开发》一书指出,如果文件包含类或模块,并且文件使用类或模块名称的小写形式命名,那么Rails将自动加载文件。因此我不需要它。定义代码的正确方法是什么,在我的模型中调用代码的正确方法是什么? 最佳答案

随机推荐