休眠唤醒(suspend/resume)时长问题分析思路

2023-11-04

1.echo 1 > /sys/power/pm_print_times 打开suspend/resume耗时开关。

如下:可以看到系统休眠时各阶段驱动模块的耗时打印,可用来帮助分析排查休眠耗时长的问题。

[  267.398855] <1>.(1)[2047:kworker/u4:3]mdio_bus stmmac-0:02: mdio_bus_phy_suspend+0x0/0xac returned 0 after 0 usecs
[  267.400193] <1>.(1)[2047:kworker/u4:3]mdio_bus stmmac-0:01: calling mdio_bus_phy_suspend+0x0/0xac @ 2047, parent: stmmac-0
[  267.401607] <1>.(1)[2047:kworker/u4:3]mdio_bus stmmac-0:01: mdio_bus_phy_suspend+0x0/0xac returned 0 after 0 usecs
[  267.402945] <1>.(1)[2047:kworker/u4:3]mdio_bus stmmac-0:00: calling mdio_bus_phy_suspend+0x0/0xac @ 2047, parent: stmmac-0
[  267.404358] <1>.(1)[2047:kworker/u4:3]mdio_bus stmmac-0:00: mdio_bus_phy_suspend+0x0/0xac returned 0 after 0 usecs
[  267.405696] <1>.(1)[2047:kworker/u4:3]mdio_bus stmmac-0:07: calling mdio_bus_phy_suspend+0x0/0xac @ 2047, parent: stmmac-0
[  267.407133] <1>.(1)[2047:kworker/u4:3]mdio_bus stmmac-0:07: mdio_bus_phy_suspend+0x0/0xac returned 0 after 0 usecs
[  267.408558] <1>.(1)[2047:kworker/u4:3]Generic PHY mdio-bus:01: calling mdio_bus_phy_suspend+0x0/0xac @ 2047, parent: mdio-bus
[  267.410093] <1>.(1)[2047:kworker/u4:3]Generic PHY mdio-bus:01: mdio_bus_phy_suspend+0x0/0xac returned 0 after 84 usecs
[  267.411494] <1>.(1)[2047:kworker/u4:3]Generic PHY mdio-bus:03: calling mdio_bus_phy_suspend+0x0/0xac @ 2047, parent: mdio-bus
[  267.413023] <1>.(1)[2047:kworker/u4:3]Generic PHY mdio-bus:03: mdio_bus_phy_suspend+0x0/0xac returned 0 after 77 usecs
[  267.417426] <1>.(1)[2047:kworker/u4:3]platform Fixed MDIO bus.0: calling platform_pm_suspend+0x0/0x5c @ 2047, parent: platform
[  267.418885] <1>.(1)[2047:kworker/u4:3]platform Fixed MDIO bus.0: platform_pm_suspend+0x0/0x5c returned 0 after 0 usecs
[  267.643941] <0>.(0)[2047:kworker/u4:3]mtd mtd9ro: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.645235] <0>.(0)[2047:kworker/u4:3]mtd mtd9ro: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.646410] <0>.(0)[2047:kworker/u4:3]mtd mtd9: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.647703] <0>.(0)[2047:kworker/u4:3]mtd mtd9: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.648873] <0>.(0)[2047:kworker/u4:3]mtd mtd8ro: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.650167] <0>.(0)[2047:kworker/u4:3]mtd mtd8ro: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.651342] <0>.(0)[2047:kworker/u4:3]mtd mtd8: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.652613] <0>.(0)[2047:kworker/u4:3]mtd mtd8: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.653782] <0>.(0)[2047:kworker/u4:3]mtd mtd7ro: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.655076] <0>.(0)[2047:kworker/u4:3]mtd mtd7ro: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.656251] <0>.(0)[2047:kworker/u4:3]mtd mtd7: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.657546] <0>.(0)[2047:kworker/u4:3]mtd mtd7: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.658716] <0>.(0)[2047:kworker/u4:3]mtd mtd6ro: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.660009] <0>.(0)[2047:kworker/u4:3]mtd mtd6ro: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.661184] <0>.(0)[2047:kworker/u4:3]mtd mtd6: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.662455] <0>.(0)[2047:kworker/u4:3]mtd mtd6: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.663625] <0>.(0)[2047:kworker/u4:3]mtd mtd5ro: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.664917] <0>.(0)[2047:kworker/u4:3]mtd mtd5ro: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.666093] <0>.(0)[2047:kworker/u4:3]mtd mtd5: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.667385] <0>.(0)[2047:kworker/u4:3]mtd mtd5: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.668557] <0>.(0)[2047:kworker/u4:3]mtd mtd4ro: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.669850] <0>.(0)[2047:kworker/u4:3]mtd mtd4ro: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.671025] <0>.(0)[2047:kworker/u4:3]mtd mtd4: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.672296] <0>.(0)[2047:kworker/u4:3]mtd mtd4: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.673464] <0>.(0)[2047:kworker/u4:3]mtd mtd3ro: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.674756] <0>.(0)[2047:kworker/u4:3]mtd mtd3ro: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.675931] <0>.(0)[2047:kworker/u4:3]mtd mtd3: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.677223] <0>.(0)[2047:kworker/u4:3]mtd mtd3: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.678393] <0>.(0)[2047:kworker/u4:3]mtd mtd2ro: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.679785] <0>.(0)[2047:kworker/u4:3]mtd mtd2ro: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.680963] <0>.(0)[2047:kworker/u4:3]mtd mtd2: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.682235] <0>.(0)[2047:kworker/u4:3]mtd mtd2: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.683405] <0>.(0)[2047:kworker/u4:3]mtd mtd1ro: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.684698] <0>.(0)[2047:kworker/u4:3]mtd mtd1ro: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.685873] <0>.(0)[2047:kworker/u4:3]mtd mtd1: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.687168] <0>.(0)[2047:kworker/u4:3]mtd mtd1: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.688338] <0>.(0)[2047:kworker/u4:3]mtd mtd0ro: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.689632] <0>.(0)[2047:kworker/u4:3]mtd mtd0ro: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.690807] <0>.(0)[2047:kworker/u4:3]mtd mtd0: calling mtd_cls_suspend+0x0/0x40 @ 2047, parent: 11005000.nfi
[  267.692078] <0>.(0)[2047:kworker/u4:3]mtd mtd0: mtd_cls_suspend+0x0/0x40 returned 0 after 0 usecs
[  267.710452] <0>.(0)[2047:kworker/u4:3]regulator regulator.35: calling 
[  267.712033] <0>.(0)[2047:kworker/u4:3]regulator regulator.35: regulator_suspend+0x0/0x74 returned 0 after 88 usecs
[  267.713373] <0>.(0)[2047:kworker/u4:3]regulator regulator.34: calling

 唤醒resume耗时长debug问题分析方法,如下,可以看到系统唤醒时各驱动子模块唤醒所耗时长:

[  268.912918] <0>.(0)[2047:kworker/u4:3]mt-i2c 11c40000.i2c0: calling mt_i2c_resume_noirq+0x0/0x7c @ 2047, parent: platform
[  268.914323] <0>.(0)[2047:kworker/u4:3]mt-i2c 11c40000.i2c0: mt_i2c_resume_noirq+0x0/0x7c returned 0 after 0 usecs
[  268.915694] <0>.(0)[2047:kworker/u4:3]mt-i2c 11c41000.i2c1: calling mt_i2c_resume_noirq+0x0/0x7c @ 2047, parent: platform
[  268.917099] <0>.(0)[2047:kworker/u4:3]mt-i2c 11c41000.i2c1: mt_i2c_resume_noirq+0x0/0x7c returned 0 after 0 usecs
[  268.918418] <0>.(0)[2047:kworker/u4:3]mt-i2c 11c42000.i2c2: calling mt_i2c_resume_noirq+0x0/0x7c @ 2047, parent: platform
[  268.919821] <0>.(0)[2047:kworker/u4:3]mt-i2c 11c42000.i2c2: mt_i2c_resume_noirq+0x0/0x7c returned 0 after 0 usecs
[  268.921140] <0>.(0)[2047:kworker/u4:3]mt-i2c 11c43000.i2c3: calling mt_i2c_resume_noirq+0x0/0x7c @ 2047, parent: platform
[  268.922543] <0>.(0)[2047:kworker/u4:3]mt-i2c 11c43000.i2c3: mt_i2c_resume_noirq+0x0/0x7c returned 0 after 0 usecs
[  268.923889] <0>.(0)[2047:kworker/u4:3]sgmii_bring_up pd-sgmii_0_phy: calling genpd_resume_noirq+0x0/0xc0 @ 2047, parent: platform
[  268.925443] <0>.(0)[2047:kworker/u4:3]sgmii resume_noirq done
[  268.926192] <0>.(0)[2047:kworker/u4:3]sgmii_bring_up pd-sgmii_0_phy: genpd_resume_noirq+0x0/0xc0 returned 0 after 732 usecs
[  268.927620] <0>.(0)[2047:kworker/u4:3]sgmii_bring_up pd-sgmii_0_top: calling genpd_resume_noirq+0x0/0xc0 @ 2047, parent: platform
[  268.929110] <0>.(0)[2047:kworker/u4:3]sgmii resume_noirq done
[  268.929855] <0>.(0)[2047:kworker/u4:3]sgmii_bring_up pd-sgmii_0_top: genpd_resume_noirq+0x0/0xc0 returned 0 after 728 usecs
[  268.931283] <0>.(0)[2047:kworker/u4:3]sgmii_bring_up pd-sgmii_1_phy: calling genpd_resume_noirq+0x0/0xc0 @ 2047, parent: platform
[  268.932772] <0>.(0)[2047:kworker/u4:3]sgmii resume_noirq done
[  268.933518] <0>.(0)[2047:kworker/u4:3]sgmii_bring_up pd-sgmii_1_phy: genpd_resume_noirq+0x0/0xc0 returned 0 after 728 usecs
[  268.935012] <0>.(0)[2047:kworker/u4:3]sgmii_bring_up pd-sgmii_1_top: calling genpd_resume_noirq+0x0/0xc0 @ 2047, parent: platform
[  268.936541] <1>.(1)[2047:kworker/u4:3]sgmii resume_noirq done
[  268.937298] <1>.(1)[2047:kworker/u4:3]sgmii_bring_up pd-sgmii_1_top: genpd_resume_noirq+0x0/0xc0 returned 0 after 739 usecs
[  268.938750] <1>.(1)[2047:kworker/u4:3]sgmii-up snps-pdsgmii_0_phy: calling genpd_resume_noirq+0x0/0xc0 @ 2047, parent: platform
[  268.940221] <1>.(1)[2047:kworker/u4:3]sgmii resume_noirq done
[  268.940967] <1>.(1)[2047:kworker/u4:3]sgmii-up snps-pdsgmii_0_phy: genpd_resume_noirq+0x0/0xc0 returned 0 after 729 usecs
[  268.942373] <1>.(1)[2047:kworker/u4:3]sgmii-up snps-pdsgmii_0_top: calling genpd_resume_noirq+0x0/0xc0 @ 2047, parent: platform
[  268.943842] <1>.(1)[2047:kworker/u4:3]sgmii resume_noirq done
[  268.944587] <1>.(1)[2047:kworker/u4:3]sgmii-up snps-pdsgmii_0_top: genpd_resume_noirq+0x0/0xc0 returned 0 after 727 usecs

2.echo 1 > /sys/module/kernel/parameters/initcall_debug 休眠唤醒子模块debug开关

如下:可以看到系统休眠时的一些打印信息,方便分析各模块是否进入suspend流程
[  268.866345] <0>-(0)[2047:kworker/u4:3]PM: Calling dpmaif_syssuspend+0x0/0x1c
[  268.869414] <0>-(0)[2047:kworker/u4:3]PM: Calling ccci_modem_syssuspend+0x0/0x44
[  268.870363] <0>-(0)[2047:kworker/u4:3]PM: Calling sched_clock_suspend+0x0/0x3c
[  268.871285] <0>-(0)[2047:kworker/u4:3]PM: Calling timekeeping_suspend+0x0/0x210
[  268.871285] <0>-(0)[2047:kworker/u4:3]PM: Calling fw_suspend+0x0/0x24
[  268.871285] <0>-(0)[2047:kworker/u4:3]PM: Calling scp_ipi_syscore_dbg_suspend+0x0/0x1c
[  268.871285] <0>-(0)[2047:kworker/u4:3]PM: Calling clkchk_syscore_suspend+0x0/0x2c
[  268.871285] <0>-(0)[2047:kworker/u4:3][clkchk] Enter CLOCK suspend Call Back !!

同理唤醒时也可以看到一些多的debug打印信息:

[  268.871285] <0>-(0)[2047:kworker/u4:3]PM: Calling clkdbg_syscore_resume+0x0/0x18
[  268.871285] <0>-(0)[2047:kworker/u4:3]PM: Calling clkchk_syscore_resume+0x0/0x24
[  268.871285] <0>-(0)[2047:kworker/u4:3][clkchk] Enter CLOCK resume Call Back !!
[  268.871285] <0>-(0)[2047:kworker/u4:3]PM: Calling scp_ipi_syscore_dbg_resume+0x0/0x18
[  268.871285] <0>-(0)[2047:kworker/u4:3]PM: Calling irq_pm_syscore_resume+0x0/0x20
[  268.871285] <0>-(0)[2047:kworker/u4:3]PM: Calling timekeeping_resume+0x0/0x14c
[  268.871285] <0>-(0)[2047:kworker/u4:3]PM: Calling sched_clock_resume+0x0/0x54 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

休眠唤醒(suspend/resume)时长问题分析思路 的相关文章

  • Tomcat Intellij Idea:远程部署

    RackSpace 云服务器 Ubuntu 12 04 Intellij Idea 11 1 2 Windows 8 Tomcat 7 0 26 JDK 6 在 Intellij Idea 上 当我尝试在远程 Tomcat 7 服务器上运行
  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • ALSA:snd_pcm_writei 调用时缓冲区不足

    当运行我最近从灰烬中带回来的旧程序时 我遇到了缓冲区不足的情况 该程序将原始声音文件完全加载到内存中 2100 字节长 525 帧 并准备 ALSA 进行输出 44 1khz 2 通道 有符号 16 位 if err snd pcm set
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可
  • 如何在 Ubuntu 中创建公共 HTML 文件夹?

    简单的问题 但由于某种原因我无法在谷歌上找到确切的答案 我在 Slicehost 上安装了全新的 Ubuntu 并且想在我的主目录中为包含一堆静态 HTML 文件的简单网站创建一个公共目录 我该怎么做呢 只是打字的问题吗mkdir publ
  • Linux 上的 Pervasive ODBC 错误 [01000][unixODBC][驱动程序管理器]无法打开 lib '/usr/local/psql/lib/odbcci.so':找不到文件

    我正在尝试让 Pervasive v10 客户端 ODBC 在 Centos 6 上运行 据我所知 没有 64 位 ODBC 客户端 因此我必须使用 32 位客户端 我终于成功安装了它 但尝试使用时出现以下错误 isql v mydsn 0
  • 如何让R使用所有处理器?

    我有一台运行 Windows XP 的四核笔记本电脑 但查看任务管理器 R 似乎一次只使用一个处理器 如何让 R 使用全部四个处理器并加速我的 R 程序 我有一个基本系统 我使用它在 for 循环上并行化我的程序 一旦您了解需要做什么 此方
  • 如何使用waf构建共享库?

    我想使用构建一个共享库waf http code google com p waf 因为它看起来比 GNU 自动工具更容易 更简洁 到目前为止 我实际上有几个与我开始编写的 wscript 有关的问题 VERSION 0 0 1 APPNA
  • 内核的panic()函数是否完全冻结所有其他进程?

    我想确认内核的panic 功能和其他类似kernel halt and machine halt 一旦触发 保证机器完全冻结 那么 所有的内核和用户进程都被冻结了吗 是panic 可以被调度程序中断吗 中断处理程序仍然可以执行吗 用例 如果
  • 如何在 Linux 中使用 C 语言使用共享内存

    我的一个项目有点问题 我一直在试图找到一个有据可查的使用共享内存的例子fork 但没有成功 基本上情况是 当用户启动程序时 我需要在共享内存中存储两个值 当前路径这是一个char and a 文件名这也是char 根据命令参数 启动一个新进
  • 为什么opencv videowriter这么慢?

    你好 stackoverflow 社区 我有一个棘手的问题 我需要你的帮助来了解这里发生了什么 我的程序从视频采集卡 Blackmagic 捕获帧 到目前为止 它工作得很好 同时我用 opencv cv imshow 显示捕获的图像 它也工
  • 在生产服务器上使用 Subversion 使文件生效的最佳方法是什么?

    目前我已经设置了 subversion 这样当我在 Eclipse PDT 中进行更改时 我可以提交更改 它们将保存在 home administrator 中项目文件 该文件具有 subversion 推荐的 branches tags
  • 使用 gdb 调试 Linux 内核模块

    我想知道 API 在内核模块 中返回什么 从几种形式可以知道 这并不是那么简单 我们需要加载符号表来调试内核模块 所以我所做的就是 1 尝试找到内核模块的 text bss和 data段地址 2 在 gdb 中使用 add symbol f
  • 使用os.execlp时,为什么`python`需要`python`作为argv[0]

    代码是这样的 os execlp python python child py other args this works os execlp python child py other args this doesn t work 我读过
  • cdc_acm:无法设置 dtr/rts - 无法与 USB cdc 设备通信

    我试图使用 pic24fj128gb206 枚举 usb cdc 设备 设备似乎已正确枚举 但是当我将设备连接到 Linux PC 时 我从内核收到以下警告消息 cdc acm 1 8 1 6 7 1 0 failed to set dtr
  • 如何让 Node.js 作为后台进程运行并且永不死掉?

    我通过 putty SSH 连接到 linux 服务器 我尝试将其作为后台进程运行 如下所示 node server js 然而 2 5 小时后 终端变得不活动 进程终止 即使终端断开连接 我是否也可以使进程保持活动状态 Edit 1 事实
  • 为什么同一个curl命令在windows和linux下输出不同的东西?

    为什么同样的curl o file https www link com 命令输出不同的东西 例如 如果我运行命令curl o source txt https www youtube com playlist list PLIx6Fwnp
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser

随机推荐

  • [管理与领导-60]:IT基层管理者 - 扩展技能 - 3 - 通过面试招到合适的人选

    目录 前言 一 招聘 1 1 什么是招聘 1 2 招聘 VS 招募 1 3 甄选 1 4 招聘中的重要原则 1 5 招聘的本质 1 6 人才匹配的维度 1 7 人员招聘中的误区 二 面试 2 1 何为面试 2 2 为什么面试 2 3 面试的
  • PRESENT加密算法(c++实现)

    简介 PRESENT加密算法在2007 年由来自德国波鸿鲁尔大学的 Bogdanov 在 CHES 会议中发表 PRESENT加密算法为一种轻量级分组密码算法 采用了 置换网络 SPN 结构 一共迭代 31 轮 分块 组 长度为 64 比特
  • 局域网可用IP网段

    C类局域网专用网段 192 168 0 1 192 168 255 254 很多公司网吧都是用这个网段 hoho B类局域网专用网段 172 16 0 1 172 31 255 254 A类局域网专用网段 10 0 0 1 10 255 2
  • 工作3周年小记

    时间荏苒 入职那天的情景还历历在目 却不经意的成为了组里的老员工 一直渴望着静好的岁月 不曾想 过去的岁月这般忙碌 匆匆 似乎没有留下太多彩色的记忆 蓦然回首 做了很多项目 看到各种同事的来去 也经历了组里的盛衰 内心没有波澜 只是遗憾没有
  • chatgpt赋能python:Python编译成pyd文件是什么?如何提高SEO排名?

    Python编译成pyd文件是什么 如何提高SEO排名 Python是一种非常强大的编程语言 它非常适合用于开发各种不同类型的应用程序 然而 Python虽然易于学习和使用 但是由于它的解释性质 它的运行速度相对较慢 在某些情况下 这可能会
  • docker 覆盖 entrypoint_跟我一起学docker(八)--Dockerfile

    1 利用Dockerfile创建镜像 什么是Dockerfile 定义 Dockerfile是一个文本格式的配置文件 用户可以使用Dockerfile快速创建自定义镜像 基本结构 Dockerfile由一行行的命令语句组成 并且支持以 开头
  • 一文解读Vision Transformer(ViT)

    前言 Vision Transformer 论文 https arxiv org pdf 2010 11929 pdf 跟李沐学AI https www bilibili com video BV15P4y137jb spm id from
  • 【ThreadPoolTaskSchedule】实现手动开启关闭定时任务

    最近在公司呢 有一个需求 大概意思就是需要我去调用远程接口 但如果出现异常或者响应失败的时候 就需要开启重试机制 直到返回成功的响应为止 我很疑惑 按理说这种情况通常都应该有一个最大重试次数吗 最终在我像组长确认这个需求之后 还是要求我按照
  • ELK 日志分析系统

    ELK 日志分析系统 2015 10 08 13 18 58 标签 elk 原创作品 允许转载 转载时请务必以超链接形式标明文章 原始出处 作者信息和本声明 否则将追究法律责任 http 467754239 blog 51cto com 4
  • 软件测试 - 边界值法

    文章目录 介绍 等价类划分法的区别 常见的边界值 步骤 案例 介绍 边界值分析法就是对输入或输出边界值进行测试的 也是一种黑盒测试 边界值分析法通常作为等价类划分法的补充 其测试用例来自等价类的边界 长期的经验得知 大量的错误是发现在输入或
  • 二叉树的遍历方式(前序遍历、中序遍历、后序遍历、层序遍历、深度优先遍历、广度优先遍历)

    前序 中序 后序 层序 一 前序遍历 步骤 根节点 gt 左子节点 gt 右子节点 适用场合 在第一次遍历到节点时就执行操作 一般只是想遍历执行操作 或输出结果 可选用前序遍历 二 中序遍历 步骤 左子节点 gt 根节点 gt 右子节点 适
  • 服务器虚拟化集群部署

    多服务器虚拟化集群部署 介绍 服务器虚拟化有有利于节省服务器开支 提高服务器资源利用率 将服务器物理资源逻辑化 动态分配内存 cpu 磁盘等物理资源 以dell的R730服务器为例 VMware ESXi5 5虚拟化软件 虚拟化服务器 1
  • ps命令解析

    ps命令用于报告当前系统的进程状态 可以搭配kill指令随时中断 删除不必要的程序 ps命令是最基本同时也是非常强大的进程查看命令 使用该命令可以确定有哪些进程正在运行和运行的状态 进程是否结束 进程有没有僵死 哪些进程占用了过多的资源等等
  • [mp4]The audio codec for mp4 atom

    In the esds atom there are a few fields of relevance to determining the codec used The first byte of content of the esds
  • 基于Spring Cloud Alibaba搭建nacos

    关系 Spring Boot是框架 将各个组件集合在一起 方便快速开发web应用 Spring Cloud基于Spring Boot 限定了一组特定的组件 从而可以方便地进行微服务工程的开发 Spring Cloud Alibaba在Spr
  • C/C++中如何获取数组的长度

    1 算术表达式 include
  • 2022李宏毅机器学习深度学习学习笔记第四周--Self-Supervised Learning

    文章目录 前言 Self Supervised Learning 什么是Self Supervised Learning Masking Input Next Sentence Prediction BERT如何使用 为什么BERT 有用呢
  • 最牛的人脸检测算法

    深大于老师的libfacedetection检测算法快速高效 准确率相当高 世界排名第五 最小可检测人脸12 12像素 关键是前两天开源了 于是我简单的看了一下 是自己用c 手敲的cnn代码 真心佩服 该代码可以在windows linux
  • pycharm安装beautifulsoup出错

    尝试一 将虚拟环境的解释器改成安装python真实路径的解释器 步骤 setting gt project interpreter gt show all gt gt system interpreter 尝试二 Python3的选择bs4
  • 休眠唤醒(suspend/resume)时长问题分析思路

    1 echo 1 gt sys power pm print times 打开suspend resume耗时开关 如下 可以看到系统休眠时各阶段驱动模块的耗时打印 可用来帮助分析排查休眠耗时长的问题 267 398855 lt 1 gt