热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Tegra31080p高清播放时电源管理方式和功耗分析

此案例分析Tegra3(采用vSMP架构,41核心)在执行1080p播放时PM的运行情况,使用的平台是ASUAEeePad&

此案例分析Tegra3(采用vSMP架构,4+1核心)在执行1080p播放时PM的运行情况,使用的平台是ASUA Eee Pad,运行Android 3.2。

先播放少女时代1080p演唱会x264,Japan.First.Tour.Girls'Generation.2011.BluRay.1080p.DTS.x264-CHD

Nvidia 1080p硬件解码:

02-16 23:01:01.170 D/PowerManagerService( 177): @PowerManagement:'KEEP_SCREEN_ON_FLAG' releaseWakeLock when screen locked
02-16 23:01:01.210 W/InputManagerService( 177): Starting input onnon-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@40968630(uid=10044 pid=2515)
02-16 23:01:01.220 I/OMXCodec( 109): [OMX.Nvidia.h264.decode] AVC profile= 100 (High), level = 41
02-16 23:01:01.220 I/OMXCodec( 109): [OMX.Nvidia.h264.decode] allocating20 buffers of size 1566720 on input port
02-16 23:01:01.220 I/OMXCodec( 109): [OMX.Nvidia.h264.decode] allocating6 buffers from a native window of size 3110400 on output port
02-16 23:01:01.320 I/ActivityManager( 177): Displayedafzkl.development.mVideoPlayer/.activity.VideoPlayerActivity: +739ms
02-16 23:01:01.480 W/MediaPlayer( 4236): Attempt to seek to invalid position:-1
02-16 23:01:01.480 I/@@@@ ( 4236): onMeasure
02-16 23:01:01.480 I/@@@@ ( 4236): onMeasure
02-16 23:01:01.620 I/nvos_linux_stub( 109): Allocating new output:1920x1088 (x 8)
02-16 23:01:01.620 I/OMXCodec( 109): [OMX.Nvidia.h264.decode] allocating10 buffers from a native window of size 3133440 on output port
02-16 23:01:09.000 V/Sensors ( 177): void cb_onMotion(uint16_t)
02-16 23:01:15.420 V/Sensors ( 177): void cb_onMotion(uint16_t)
02-16 23:01:27.250 V/Sensors ( 177): void cb_onMotion(uint16_t)
02-16 23:01:35.970 D/PowerManagerService( 177): @PowerManagement:'KEEP_SCREEN_ON_FLAG' releaseWakeLock when screen locked


播放过程中,分析显示CPU利用率很低,仅仅core0是online的:

cpu0:
$ cd cpu0
$ cat online
1cpu1~cpu3:
$ cd cpu1
$ cat online
0
$ cd cpu2
$ cat online
0
$ cd cpu3
$ cat online
0


分析内核消息,发现core0绝大多数时候运行在LP处理器上,少量时间段会切换至G core的core0,而且切过去G core后,一般很短时间就切换回来了:

<4>[ 8697.741672] nct1008_get_temp: ret temp&#61;24C

<4>[ 8702.748251] tegra_watchdog_touch

<4>[ 8702.752200] nct1008_get_temp: ret temp&#61;24C


<3>[ 8707.190304] LP&#61;>G: prolog 21 us,switch 2133 us, epilog 24 us, total 2178 us
<4>[ 8707.757339] tegra_watchdog_touch
<4>[ 8707.762874] nct1008_get_temp: ret temp&#61;24C
<3>[ 8708.188339] G&#61;>LP: prolog 22 us, switch 160 us, epilog 25 us,total 207 us


<4>[ 8712.767481] tegra_watchdog_touch

<4>[ 8712.771979] nct1008_get_temp: ret temp&#61;24C

<4>[ 8717.777529] tegra_watchdog_touch

<4>[ 8717.779157] nct1008_get_temp: ret temp&#61;24C

<4>[ 8722.787436] tegra_watchdog_touch

<4>[ 8722.794515] nct1008_get_temp: ret temp&#61;24C

<4>[ 8727.797424] tegra_watchdog_touch

<4>[ 8727.800313] nct1008_get_temp: ret temp&#61;24C

<4>[ 8729.277836] DIDIM check brightness&#61;34

<4>[ 8729.292825] DIDIM check brightness&#61;34

<4>[ 8729.326126] DIDIM check brightness&#61;34

<4>[ 8729.375792] DIDIM check brightness&#61;34

<4>[ 8732.807669] tegra_watchdog_touch

<4>[ 8732.809706] nct1008_get_temp: ret temp&#61;24C

<4>[ 8737.822767] tegra_watchdog_touch

<4>[ 8737.824646] nct1008_get_temp: ret temp&#61;24C

<4>[ 8741.358266] battery_status_poll 120 1

<5>[ 8741.359155] asuspec: [asuspec_send_ec_req] send EC_Request

<5>[ 8741.434190] asuspec: [asuspec_work_function] 0x2 0x81 0x50 0xff

<5>[ 8741.435292] asuspec: [asuspec_smi] ASUSPEC_SMI_HANDSHAKING

<4>[ 8741.640801] pad_get_psp  val->intval&#61;Not charging ret&#61;c0

<4>[ 8741.645947] pad_get_psp voltage_now &#61;7897

<4>[ 8741.650778] pad_get_capacity val->intval&#61;85 ret&#61;84

<4>[ 8741.655638] pad_get_psp  bat_temp&#61;2923

<4>[ 8741.693209] pad_get_capacity val->intval&#61;85 ret&#61;84

<4>[ 8741.697893] pad_get_psp voltage_now &#61;7897

<4>[ 8741.703563] pad_get_psp  bat_temp&#61;2923

<4>[ 8741.708354] pad_get_psp  val->intval&#61;Not charging ret&#61;c0

<5>[ 8742.715015] asuspec: [asuspec_enter_s3_work_function] EC in S3

<4>[ 8742.827629] tegra_watchdog_touch

<4>[ 8742.829447] nct1008_get_temp: ret temp&#61;24C

<4>[ 8747.849204] tegra_watchdog_touch

<4>[ 8747.854043] nct1008_get_temp: ret temp&#61;24C

<4>[ 8752.857607] tegra_watchdog_touch

<4>[ 8752.859700] nct1008_get_temp: ret temp&#61;24C

<4>[ 8757.867500] tegra_watchdog_touch

<4>[ 8757.868567] nct1008_get_temp: ret temp&#61;23C

<4>[ 8762.877467] tegra_watchdog_touch

<4>[ 8762.880267] nct1008_get_temp: ret temp&#61;23C

<4>[ 8763.574114] DIDIM check brightness&#61;34

<3>[ 8767.250183] LP&#61;>G: prolog 22 us, switch 2133 us, epilog 25 us,total 2180 us

<4>[ 8767.887423] tegra_watchdog_touch

<4>[ 8767.888175] nct1008_get_temp: ret temp&#61;24C

<3>[ 8768.255782] G&#61;>LP: prolog 21 us, switch 161 us, epilog 26 us,total 208 us

<4>[ 8772.897999] tegra_watchdog_touch

<4>[ 8772.908079] nct1008_get_temp: ret temp&#61;24C

<4>[ 8777.917609] tegra_watchdog_touch

<4>[ 8777.920335] nct1008_get_temp: ret temp&#61;24C

<4>[ 8782.927459] tegra_watchdog_touch

<4>[ 8782.932624] nct1008_get_temp: ret temp&#61;23C

<4>[ 8787.937530] tegra_watchdog_touch

<4>[ 8787.938876] nct1008_get_temp: ret temp&#61;24C

<4>[ 8792.947739] tegra_watchdog_touch

<4>[ 8792.954198] nct1008_get_temp: ret temp&#61;23C

<4>[ 8797.821783] DIDIM check brightness&#61;34

<4>[ 8797.872428] DIDIM check brightness&#61;34

<4>[ 8797.904626] DIDIM check brightness&#61;34

<4>[ 8797.957424] tegra_watchdog_touch

<4>[ 8797.958548] nct1008_get_temp: ret temp&#61;23C

<4>[ 8802.967704] tegra_watchdog_touch

<4>[ 8802.971416] nct1008_get_temp: ret temp&#61;23C

<4>[ 8807.977642] tegra_watchdog_touch

<4>[ 8807.982341] nct1008_get_temp: ret temp&#61;23C

<4>[ 8812.988330] tegra_watchdog_touch

<4>[ 8812.991635] nct1008_get_temp: ret temp&#61;23C

<4>[ 8817.997661] tegra_watchdog_touch

<4>[ 8818.007342] nct1008_get_temp: ret temp&#61;23C

<4>[ 8823.017612] tegra_watchdog_touch

<4>[ 8823.021855] nct1008_get_temp: ret temp&#61;23C

<4>[ 8828.027860] tegra_watchdog_touch

<4>[ 8828.029863] nct1008_get_temp: ret temp&#61;24C

<4>[ 8832.102683] DIDIM check brightness&#61;34

<4>[ 8833.047674] tegra_watchdog_touch

<4>[ 8833.055387] nct1008_get_temp: ret temp&#61;23C

<4>[ 8838.057766] tegra_watchdog_touch

<4>[ 8838.059161] nct1008_get_temp: ret temp&#61;23C

<4>[ 8843.070562] tegra_watchdog_touch

<4>[ 8843.073387] nct1008_get_temp: ret temp&#61;23C

<4>[ 8848.077551] tegra_watchdog_touch

<4>[ 8848.080379] nct1008_get_temp: ret temp&#61;23C

<4>[ 8853.087668] tegra_watchdog_touch

<4>[ 8853.089758] nct1008_get_temp: ret temp&#61;23C

<4>[ 8858.097613] tegra_watchdog_touch

<4>[ 8858.099259] nct1008_get_temp: ret temp&#61;23C

<4>[ 8861.677498] battery_status_poll 120 1

<5>[ 8861.678295] asuspec: [asuspec_send_ec_req] send EC_Request

<5>[ 8861.758825] asuspec: [asuspec_work_function] 0x2 0x81 0x50 0xff

<5>[ 8861.759922] asuspec: [asuspec_smi] ASUSPEC_SMI_HANDSHAKING

<4>[ 8861.961852] pad_get_psp  val->intval&#61;Not charging ret&#61;c0

<4>[ 8861.966641] pad_get_psp voltage_now &#61;7890

<4>[ 8861.971402] pad_get_capacity val->intval&#61;83 ret&#61;83

<4>[ 8861.976154] pad_get_psp  bat_temp&#61;2919

<4>[ 8861.984047] pad_get_capacity val->intval&#61;83 ret&#61;83

<4>[ 8861.988702] pad_get_psp voltage_now &#61;7890

<4>[ 8862.000177] pad_get_psp  bat_temp&#61;2919

<4>[ 8862.004939] pad_get_psp  val->intval&#61;Not charging ret&#61;c0

<5>[ 8863.005272] asuspec: [asuspec_enter_s3_work_function] EC in S3

<4>[ 8863.107656] tegra_watchdog_touch

<4>[ 8863.109492] nct1008_get_temp: ret temp&#61;23C

<4>[ 8866.350511] DIDIM check brightness&#61;34

<4>[ 8866.400282] DIDIM check brightness&#61;34

<4>[ 8866.433608] DIDIM check brightness&#61;34

<4>[ 8868.124135] tegra_watchdog_touch

<4>[ 8868.125863] nct1008_get_temp: ret temp&#61;23C

<4>[ 8873.127887] tegra_watchdog_touch

<4>[ 8873.136542] nct1008_get_temp: ret temp&#61;23C

<4>[ 8878.151029] tegra_watchdog_touch

<4>[ 8878.155094] nct1008_get_temp: ret temp&#61;23C

<4>[ 8883.157487] tegra_watchdog_touch

<4>[ 8883.161697] nct1008_get_temp: ret temp&#61;23C

<4>[ 8888.167708] tegra_watchdog_touch

<4>[ 8888.169550] nct1008_get_temp: ret temp&#61;23C

<4>[ 8893.177582] tegra_watchdog_touch

<4>[ 8893.193386] nct1008_get_temp: ret temp&#61;23C

<4>[ 8898.197395] tegra_watchdog_touch

<4>[ 8898.198632] nct1008_get_temp: ret temp&#61;23C

<4>[ 8900.615181] DIDIM check brightness&#61;34

<4>[ 8903.207448] tegra_watchdog_touch

<4>[ 8903.208865] nct1008_get_temp: ret temp&#61;23C

<4>[ 8908.217488] tegra_watchdog_touch

<4>[ 8908.219253] nct1008_get_temp: ret temp&#61;23C

<4>[ 8913.228507] tegra_watchdog_touch

<4>[ 8913.232502] nct1008_get_temp: ret temp&#61;23C

<4>[ 8918.245003] tegra_watchdog_touch

<4>[ 8918.255452] nct1008_get_temp: ret temp&#61;23C

<4>[ 8923.257541] tegra_watchdog_touch

<4>[ 8923.259385] nct1008_get_temp: ret temp&#61;23C

<4>[ 8928.277829] tegra_watchdog_touch

<4>[ 8928.291194] nct1008_get_temp: ret temp&#61;23C

<4>[ 8933.297815] tegra_watchdog_touch

<4>[ 8933.299639] nct1008_get_temp: ret temp&#61;23C

<4>[ 8934.896073] DIDIM check brightness&#61;34

<4>[ 8934.913309] DIDIM check brightness&#61;34

<4>[ 8934.945759] DIDIM check brightness&#61;34

<4>[ 8938.307463] tegra_watchdog_touch

<4>[ 8938.311450] nct1008_get_temp: ret temp&#61;23C

<4>[ 8943.337947] tegra_watchdog_touch

<4>[ 8943.349888] nct1008_get_temp: ret temp&#61;23C

<4>[ 8948.357496] tegra_watchdog_touch

<4>[ 8948.361980] nct1008_get_temp: ret temp&#61;23C

<4>[ 8953.367562] tegra_watchdog_touch

<4>[ 8953.371771] nct1008_get_temp: ret temp&#61;23C

<4>[ 8958.377523] tegra_watchdog_touch

<4>[ 8958.379348] nct1008_get_temp: ret temp&#61;23C

<4>[ 8963.387722] tegra_watchdog_touch

<4>[ 8963.415660] nct1008_get_temp: ret temp&#61;23C

<4>[ 8968.417526] tegra_watchdog_touch

<4>[ 8968.418720] nct1008_get_temp: ret temp&#61;23C

<4>[ 8969.110980] DIDIM check brightness&#61;34

<4>[ 8973.427470] tegra_watchdog_touch

<4>[ 8973.431726] nct1008_get_temp: ret temp&#61;23C

<4>[ 8978.437384] tegra_watchdog_touch

<4>[ 8978.440961] nct1008_get_temp: ret temp&#61;23C

<4>[ 8982.010891] battery_status_poll 120 1

<5>[ 8982.011965] asuspec: [asuspec_send_ec_req] send EC_Request

<5>[ 8982.077071] asuspec: [asuspec_work_function] 0x2 0x81 0x50 0xff

<5>[ 8982.077789] asuspec: [asuspec_smi] ASUSPEC_SMI_HANDSHAKING

<4>[ 8982.291991] pad_get_psp  val->intval&#61;Not charging ret&#61;c0

<4>[ 8982.299728] pad_get_psp voltage_now &#61;7884

<4>[ 8982.304485] pad_get_capacity val->intval&#61;83 ret&#61;83





播放70分钟后&#xff0c;改播apple发布的经典风景1080p测试片cornell_m1080p.mov&#xff0c;下载地址&#xff1a;


http://images.apple.com/movies/us/hd_gallery/gl1800/1080p/cornell_m1080p.mov



02-17 00:08:38.330 I/AwesomePlayer( 109):setDataSource_l(&#39;/sdcard/Movies/cornell_m1080p.mov&#39;)
02-17 00:08:38.330 I/&#64;&#64;&#64;&#64; ( 4236): onMeasure
02-17 00:08:38.330 I/&#64;&#64;&#64;&#64; ( 4236): onMeasure
02-17 00:08:38.350 W/MPEG4Extractor( 109): Identified supported mpeg4through LegacySniffMPEG4.
02-17 00:08:38.390 I/MPEG4Extractor( 109): QT MODE DECIDED
02-17 00:08:38.390 I/MPEG4Extractor( 109): atoms_path: -1: 1836069985-2:1937011556 -3:1937007212
02-17 00:08:38.390 I/MPEG4Extractor( 109): qtmode/ver&#61;1 , extradataread16
02-17 00:08:38.390 I/MPEG4Extractor( 109): (qtmode) its wave prebnode.mp4a. so break here...
02-17 00:08:38.390 D/TabletStatusBar( 292): lights on
02-17 00:08:38.430 I/SampleTable( 109): There are reordered framespresent.
02-17 00:08:38.460 I/OMXCodec( 109): [OMX.Nvidia.h264.decode] AVC profile&#61; 77 (Main), level &#61; 41
02-17 00:08:38.460 I/OMXCodec( 109): [OMX.Nvidia.h264.decode] allocating20 buffers of size 1566720 on input port
02-17 00:08:38.460 I/OMXCodec( 109): [OMX.Nvidia.h264.decode] allocating6 buffers from a native window of size 3110400 on output port
02-17 00:08:38.710 W/OMXCodec( 109): Codec outputs a different number ofchannels than the input stream contains (contains 2 channels, codec outputs 2channels) (44100 48000).
02-17 00:08:38.710 I/OMXCodec( 109): [OMX.Nvidia.eaacp.decoder]allocating 5 buffers of size 24000 on input port
02-17 00:08:38.710 I/OMXCodec( 109): [OMX.Nvidia.eaacp.decoder]allocating 15 buffers of size 18432 on output port
02-17 00:08:38.800 I/nvos_linux_stub( 109): Allocating new output:1920x1088 (x 7)
02-17 00:08:38.800 I/OMXCodec( 109): [OMX.Nvidia.h264.decode] allocating9 buffers from a native window of size 3133440 on output port
02-17 00:08:40.990 I/dalvikvm( 4236): Jit: resizing JitTable from 4096 to 8192


看到的CPU利用情况与少女时代演唱会相似。播放至02-17 05:54:10.050&#xff0c;电池耗尽&#xff0c;关机&#xff1a;

02-17 05:54:09.530 I/MountService( 177):Shutting down
02-17 05:54:09.540 I/PackageManager( 177): Updating external media statusfrom unmounted to unmounted
02-17 05:54:09.550 W/ShutdownThread( 177): Result code 0 fromMountService.shutdown
02-17 05:54:09.550 W/ShutdownThread( 177): Result code 0 fromMountService.shutdown
02-17 05:54:09.560 D/VoldCmdListener( 103): storage users /mnt/sdcard
02-17 05:54:09.770 W/ActivityManager( 177): Killing processes unmountmedia at adjustment 7
02-17 05:54:09.770 W/ActivityManager( 177): KillingProcessRecord{40b07ed8 1003:com.google.android.apps.maps/10071} (adj 11):unmount media
02-17 05:54:09.770 D/VoldCmdListener( 103): storage users /mnt/sdcard
02-17 05:54:09.970 D/dalvikvm( 177): GC_EXPLICIT freed 844K, 36% free20568K/31943K, paused 2ms&#43;5ms
02-17 05:54:09.980 I/PackageManager( 177): Updating external media statusfrom unmounted to unmounted
02-17 05:54:09.980 W/ShutdownThread( 177): Result code -1 fromMountService.shutdown
02-17 05:54:09.980 D/VoldCmdListener( 103): volume unmount /mnt/sdcardforce
02-17 05:54:09.990 D/WindowManager( 177): readLidState, sw:1
02-17 05:54:09.990 D/WindowManager( 177): adjustConfigurationLw,config:{1.0 0mcc0mnc (no locale) sw800dp w1280dp h752dp xlrg land ?uimode?night finger qwerty/v/v -nav/v} mLidOpen:1 mHasDockFeature:truemHasHallSensorFeature:true config.hardKeyboardHidden:1
02-17 05:54:10.050 I/ShutdownThread( 177):Performing low-level shutdown...


由此&#xff0c;统计&#xff0c;在只有平板电池有电&#xff0c;且LCD和背光一直亮着播放1080p的场景下&#xff0c;华硕tegra3平板电脑累计播放电源6小时53分电池耗尽。 且此过程CPU利用率很低&#xff0c;绝大多数情况下&#xff0c;只有低功耗的core在运行。


推荐阅读
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
author-avatar
mobiledu2502902725
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有