[archlinux][hardware] ThankPad T450自带SSD做bcache之后的使用寿命分析
这个分析的起因,是由于我之前干了这两个事:
[troubleshoot][archlinux][bcache] 修改linux文件系统 / 分区方案 / 做混合硬盘 / 系统转生大!手!术!(调整底层架构,不!重!装!)
[archlinux][hardware] 查看SSD的使用寿命
在12月06日完成了底层硬盘的调整之后,做了如下的硬盘指标统计:
/home/tong/Workspace/system/bcache [tong@T7] [:]
> cat
smartctl 6.5 -- r4318 [x86_64-linux-4.8.--ARCH] (local build)
Copyright (C) -, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION ===
Model Family: SanDisk based SSDs
Device Model: SanDisk SSD U110 16GB
Serial Number:
LU WWN Device Id: 001b44 ec81598d5
Firmware Version: U21B001
User Capacity: ,,, bytes [16.0 GB]
Sector Size: bytes logical/physical
Rotation Rate: Solid State Device
Form Factor: 1.8 inches
Device is: In smartctl database [for details use: -P show]
ATA Version is: ACS- T13/-D revision
SATA Version is: SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Tue Dec :: CST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
AAM feature is: Unavailable
APM feature is: Disabled
Rd look-ahead is: Enabled
Write cache is: Enabled
ATA Security is: Disabled, frozen [SEC2]
Wt Cache Reorder: Unavailable === START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED General SMART Values:
Offline data collection status: (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
Self-test execution status: ( ) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( ) seconds.
Offline data collection
capabilities: (0x51) SMART execute Offline immediate.
No Auto Offline data collection support.
Suspend Offline collection upon new
command.
No Offline surface scan supported.
Self-test supported.
No Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( ) minutes.
Extended self-test routine
recommended polling time: ( ) minutes. SMART Attributes Data Structure revision number:
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
Reallocated_Sector_Ct -O---- -
Power_On_Hours -O---- -
Power_Cycle_Count -O---- -
Program_Fail_Count -O---- -
Erase_Fail_Count -O---- -
Avg_Write/Erase_Count -O---- -
Unexpect_Power_Loss_Ct -O---- -
Reported_Uncorrect -O---- -
Perc_Write/Erase_Count -O---- -
Perc_Avail_Resrvd_Space PO---- -
Perc_Write/Erase_Ct_BC -O---- -
Total_LBAs_Written -O---- -
Total_LBAs_Read -O---- -
||||||_ K auto-keep
|||||__ C event count
||||___ R error rate
|||____ S speed/performance
||_____ O updated online
|______ P prefailure warning General Purpose Log Directory Version
SMART Log Directory Version [multi-sector log support]
Address Access R/W Size Description
0x00 GPL,SL R/O Log Directory
0x01 GPL,SL R/O Summary SMART error log
0x03 GPL,SL R/O Ext. Comprehensive SMART error log
0x04 GPL,SL R/O Device Statistics log
0x06 GPL,SL R/O SMART self-test log
0x09 GPL,SL R/W Selective self-test log
0x10 GPL,SL R/O SATA NCQ Queued Error log
0x11 GPL,SL R/O SATA Phy Event Counters log
0x30 GPL,SL R/O IDENTIFY DEVICE data log
0x80-0x9f GPL,SL R/W Host vendor specific log
0xa1 GPL,SL VS Device vendor specific log
0xa2 GPL,SL VS Device vendor specific log
0xa3 GPL,SL VS Device vendor specific log
0xa6-0xa7 GPL,SL VS Device vendor specific log Warning! SMART Extended Comprehensive Error Log Structure error: invalid SMART checksum.
SMART Extended Comprehensive Error Log Version: ( sectors)
No Errors Logged SMART Extended Self-test Log (GP Log 0x07) not supported SMART Self-test log structure revision number
No self-tests have been logged. [To run self-tests, use: smartctl -t] SMART Selective self-test log data structure revision number
Note: revision number not implies that no selective self-test has ever been run
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
Not_testing
Not_testing
Not_testing
Not_testing
Not_testing
Read_scanning was never started
Selective self-test flags (0xffff):
Currently read-scanning the remainder of the disk.
If Selective self-test is pending on power-up, resume after minute delay. SCT Commands not supported Device Statistics (GP Log 0x04)
Page Offset Size Value Flags Description
0x05 ===== = = === == Temperature Statistics (rev ) ==
0x05 0x008 --- Current Temperature
0x05 0x010 - --- Average Short Term Temperature
0x05 0x018 - --- Average Long Term Temperature
0x05 0x020 --- Highest Temperature
0x05 0x028 --- Lowest Temperature
0x05 0x030 --- Highest Average Short Term Temperature
0x05 0x038 --- Lowest Average Short Term Temperature
0x05 0x040 - --- Highest Average Long Term Temperature
0x05 0x048 - --- Lowest Average Long Term Temperature
0x05 0x050 --- Time in Over-Temperature
0x05 0x058 --- Specified Maximum Operating Temperature
0x05 0x060 --- Time in Under-Temperature
0x05 0x068 --- Specified Minimum Operating Temperature
0x07 ===== = = === == Solid State Device Statistics (rev ) ==
0x07 0x008 N-- Percentage Used Endurance Indicator
|||_ C monitored condition met
||__ D supports DSN
|___ N normalized value SATA Phy Event Counters (GP Log 0x11)
ID Size Value Description
0x0003 R_ERR response for device-to-host data FIS
0x0004 R_ERR response for host-to-device data FIS
0x0006 R_ERR response for device-to-host non-data FIS
0x0007 R_ERR response for host-to-device non-data FIS
0x0009 Transition from drive PhyRdy to drive PhyNRdy
0x000a Device-to-host register FISes sent due to a COMRESET
0x000f R_ERR response for host-to-device data FIS, CRC
0x0012 R_ERR response for host-to-device non-data FIS, CRC
0x0001 Command failed due to ICRC error /home/tong/Workspace/system/bcache [tong@T7] [:]
>
12月06日硬盘指标统计
在12月19日再次进行了硬盘指标的统计:
/home/tong/Workspace/system/bcache [tong@T7] [:]
> cat
smartctl 6.5 -- r4318 [x86_64-linux-4.8.--ARCH] (local build)
Copyright (C) -, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION ===
Model Family: SanDisk based SSDs
Device Model: SanDisk SSD U110 16GB
Serial Number:
LU WWN Device Id: 001b44 ec81598d5
Firmware Version: U21B001
User Capacity: ,,, bytes [16.0 GB]
Sector Size: bytes logical/physical
Rotation Rate: Solid State Device
Form Factor: 1.8 inches
Device is: In smartctl database [for details use: -P show]
ATA Version is: ACS- T13/-D revision
SATA Version is: SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Mon Dec :: CST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
AAM feature is: Unavailable
APM feature is: Disabled
Rd look-ahead is: Enabled
Write cache is: Enabled
ATA Security is: Disabled, frozen [SEC2]
Wt Cache Reorder: Unavailable === START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED General SMART Values:
Offline data collection status: (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
Self-test execution status: ( ) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( ) seconds.
Offline data collection
capabilities: (0x51) SMART execute Offline immediate.
No Auto Offline data collection support.
Suspend Offline collection upon new
command.
No Offline surface scan supported.
Self-test supported.
No Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( ) minutes.
Extended self-test routine
recommended polling time: ( ) minutes. SMART Attributes Data Structure revision number:
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
Reallocated_Sector_Ct -O---- -
Power_On_Hours -O---- -
Power_Cycle_Count -O---- -
Program_Fail_Count -O---- -
Erase_Fail_Count -O---- -
Avg_Write/Erase_Count -O---- -
Unexpect_Power_Loss_Ct -O---- -
Reported_Uncorrect -O---- -
Perc_Write/Erase_Count -O---- -
Perc_Avail_Resrvd_Space PO---- -
Perc_Write/Erase_Ct_BC -O---- -
Total_LBAs_Written -O---- -
Total_LBAs_Read -O---- -
||||||_ K auto-keep
|||||__ C event count
||||___ R error rate
|||____ S speed/performance
||_____ O updated online
|______ P prefailure warning General Purpose Log Directory Version
SMART Log Directory Version [multi-sector log support]
Address Access R/W Size Description
0x00 GPL,SL R/O Log Directory
0x01 GPL,SL R/O Summary SMART error log
0x03 GPL,SL R/O Ext. Comprehensive SMART error log
0x04 GPL,SL R/O Device Statistics log
0x06 GPL,SL R/O SMART self-test log
0x09 GPL,SL R/W Selective self-test log
0x10 GPL,SL R/O SATA NCQ Queued Error log
0x11 GPL,SL R/O SATA Phy Event Counters log
0x30 GPL,SL R/O IDENTIFY DEVICE data log
0x80-0x9f GPL,SL R/W Host vendor specific log
0xa1 GPL,SL VS Device vendor specific log
0xa2 GPL,SL VS Device vendor specific log
0xa3 GPL,SL VS Device vendor specific log
0xa6-0xa7 GPL,SL VS Device vendor specific log Warning! SMART Extended Comprehensive Error Log Structure error: invalid SMART checksum.
SMART Extended Comprehensive Error Log Version: ( sectors)
No Errors Logged SMART Extended Self-test Log (GP Log 0x07) not supported SMART Self-test log structure revision number
No self-tests have been logged. [To run self-tests, use: smartctl -t] SMART Selective self-test log data structure revision number
Note: revision number not implies that no selective self-test has ever been run
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
Not_testing
Not_testing
Not_testing
Not_testing
Not_testing
Read_scanning was never started
Selective self-test flags (0xffff):
Currently read-scanning the remainder of the disk.
If Selective self-test is pending on power-up, resume after minute delay. SCT Commands not supported Device Statistics (GP Log 0x04)
Page Offset Size Value Flags Description
0x05 ===== = = === == Temperature Statistics (rev ) ==
0x05 0x008 --- Current Temperature
0x05 0x010 - --- Average Short Term Temperature
0x05 0x018 - --- Average Long Term Temperature
0x05 0x020 --- Highest Temperature
0x05 0x028 --- Lowest Temperature
0x05 0x030 --- Highest Average Short Term Temperature
0x05 0x038 --- Lowest Average Short Term Temperature
0x05 0x040 - --- Highest Average Long Term Temperature
0x05 0x048 - --- Lowest Average Long Term Temperature
0x05 0x050 --- Time in Over-Temperature
0x05 0x058 --- Specified Maximum Operating Temperature
0x05 0x060 --- Time in Under-Temperature
0x05 0x068 --- Specified Minimum Operating Temperature
0x07 ===== = = === == Solid State Device Statistics (rev ) ==
0x07 0x008 N-- Percentage Used Endurance Indicator
|||_ C monitored condition met
||__ D supports DSN
|___ N normalized value SATA Phy Event Counters (GP Log 0x11)
ID Size Value Description
0x0003 R_ERR response for device-to-host data FIS
0x0004 R_ERR response for host-to-device data FIS
0x0006 R_ERR response for device-to-host non-data FIS
0x0007 R_ERR response for host-to-device non-data FIS
0x0009 Transition from drive PhyRdy to drive PhyNRdy
0x000a Device-to-host register FISes sent due to a COMRESET
0x000f R_ERR response for host-to-device data FIS, CRC
0x0012 R_ERR response for host-to-device non-data FIS, CRC
0x0001 Command failed due to ICRC error /home/tong/Workspace/system/bcache [tong@T7] [:]
>
12月19日硬盘指标统计
比较如下:
/home/tong/Workspace/system/bcache [tong@T7] [:]
> diff
1c1
< smartctl 6.5 -- r4318 [x86_64-linux-4.8.--ARCH] (local build)
---
> smartctl 6.5 -- r4318 [x86_64-linux-4.8.--ARCH] (local build)
17c17
< Local Time is: Tue Dec :: CST
---
> Local Time is: Mon Dec :: CST
,63c62,
< Power_On_Hours -O---- -
< Power_Cycle_Count -O---- -
---
> Power_On_Hours -O---- -
> Power_Cycle_Count -O---- -
66c66
< Avg_Write/Erase_Count -O---- -
---
> Avg_Write/Erase_Count -O---- -
69c69
< Perc_Write/Erase_Count -O---- -
---
> Perc_Write/Erase_Count -O---- -
,73c71,
< Perc_Write/Erase_Ct_BC -O---- -
< 241 Total_LBAs_Written -O---- 100 100 000 - 538537024
< 242 Total_LBAs_Read -O---- 100 100 000 - 1275507679
---
> Perc_Write/Erase_Ct_BC -O---- -
> 241 Total_LBAs_Written -O---- 100 100 000 - 598719455
> 242 Total_LBAs_Read -O---- 100 100 000 - 1338182982
126c126
< 0x05 0x008 --- Current Temperature
---
> 0x05 0x008 --- Current Temperature
140c140
< 0x07 0x008 1 1 N-- Percentage Used Endurance Indicator
---
> 0x07 0x008 1 2 N-- Percentage Used Endurance Indicator /home/tong/Workspace/system/bcache [tong@T7] [:]
>
关键指标红色标出。
从去年大概10月底新机初装开始,到12月06日,寿命禁用了1%。从12月06至19日短短13天,寿命值便增长为2%。
已知假设常规使用的情况下一块SSD的寿命是10年,计算如下:
/home/tong/Workspace/system/bcache [tong@T7] [:]
> bc -l
bc 1.06.
Copyright -, , , , , Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
/ 365 # 取整之前常规使用情况下,的使用时长为365天。
1475443.90136986301369863013 # 计算平均每天的写入次数。
( - ) /
4629417.76923076923076923076 # 计算过去的13天里,评价每天的写入次数。
/ 4 # 两种情况下的单天写入次数取比例。
2.5000000000000000000
基于以上计算,采用bcache模式使用SSD硬盘的情况下,硬盘的写入次数是常规情况下的4倍。
按照常规经验值10年计算,bcache方式下SSD的寿命为10年的四分之一:2.5年。
我只为bcache分配了16GSSD的一半8GB。又因为bcache方式下,SSD的缓存为 LRU方式。所以,如果采用16GB的话,缓存内容会加倍,读写次数自然也会加倍。这样的话寿命将缩短为1.25年,这与百合的经验也完全相符,它的SSD就是一年之后坏掉的。
所以基于以上,我的这块SSD,将于2019年6月前坏掉。
淘宝上16G二手ngffSSD的售价是35。全新64G也不过150。
我决定将这块SSD作为耗材继续使用。完。:)
当然,后续我还会定期观察。随时更新信息。
==================== update @ 20170624 ========================
smartctl 6.5 -- r4318 [x86_64-linux-4.11.--ARCH] (local build)
Copyright (C) -, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION ===
Model Family: SanDisk based SSDs
Device Model: SanDisk SSD U110 16GB
Serial Number:
LU WWN Device Id: 001b44 ec81598d5
Firmware Version: U21B001
User Capacity: ,,, bytes [16.0 GB]
Sector Size: bytes logical/physical
Rotation Rate: Solid State Device
Form Factor: 1.8 inches
Device is: In smartctl database [for details use: -P show]
ATA Version is: ACS- T13/-D revision
SATA Version is: SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Sat Jun :: CST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
AAM feature is: Unavailable
APM feature is: Disabled
Rd look-ahead is: Enabled
Write cache is: Enabled
ATA Security is: Disabled, frozen [SEC2]
Wt Cache Reorder: Unavailable === START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED General SMART Values:
Offline data collection status: (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
Self-test execution status: ( ) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( ) seconds.
Offline data collection
capabilities: (0x51) SMART execute Offline immediate.
No Auto Offline data collection support.
Suspend Offline collection upon new
command.
No Offline surface scan supported.
Self-test supported.
No Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( ) minutes.
Extended self-test routine
recommended polling time: ( ) minutes. SMART Attributes Data Structure revision number:
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
Reallocated_Sector_Ct -O---- -
Power_On_Hours -O---- -
Power_Cycle_Count -O---- -
Program_Fail_Count -O---- -
Erase_Fail_Count -O---- -
Avg_Write/Erase_Count -O---- -
Unexpect_Power_Loss_Ct -O---- -
Reported_Uncorrect -O---- -
Perc_Write/Erase_Count -O---- -
Perc_Avail_Resrvd_Space PO---- -
Perc_Write/Erase_Ct_BC -O---- -
Total_LBAs_Written -O---- -
Total_LBAs_Read -O---- -
||||||_ K auto-keep
|||||__ C event count
||||___ R error rate
|||____ S speed/performance
||_____ O updated online
|______ P prefailure warning General Purpose Log Directory Version
SMART Log Directory Version [multi-sector log support]
Address Access R/W Size Description
0x00 GPL,SL R/O Log Directory
0x01 GPL,SL R/O Summary SMART error log
0x03 GPL,SL R/O Ext. Comprehensive SMART error log
0x04 GPL,SL R/O Device Statistics log
0x06 GPL,SL R/O SMART self-test log
0x09 GPL,SL R/W Selective self-test log
0x10 GPL,SL R/O SATA NCQ Queued Error log
0x11 GPL,SL R/O SATA Phy Event Counters log
0x30 GPL,SL R/O IDENTIFY DEVICE data log
0x80-0x9f GPL,SL R/W Host vendor specific log
0xa1 GPL,SL VS Device vendor specific log
0xa2 GPL,SL VS Device vendor specific log
0xa3 GPL,SL VS Device vendor specific log
0xa6-0xa7 GPL,SL VS Device vendor specific log Warning! SMART Extended Comprehensive Error Log Structure error: invalid SMART checksum.
SMART Extended Comprehensive Error Log Version: ( sectors)
No Errors Logged SMART Extended Self-test Log (GP Log 0x07) not supported SMART Self-test log structure revision number
No self-tests have been logged. [To run self-tests, use: smartctl -t] SMART Selective self-test log data structure revision number
Note: revision number not implies that no selective self-test has ever been run
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
Not_testing
Not_testing
Not_testing
Not_testing
Not_testing
Read_scanning was never started
Selective self-test flags (0xffff):
Currently read-scanning the remainder of the disk.
If Selective self-test is pending on power-up, resume after minute delay. SCT Commands not supported Device Statistics (GP Log 0x04)
Page Offset Size Value Flags Description
0x05 ===== = = === == Temperature Statistics (rev ) ==
0x05 0x008 --- Current Temperature
0x05 0x010 - --- Average Short Term Temperature
0x05 0x018 - --- Average Long Term Temperature
0x05 0x020 --- Highest Temperature
0x05 0x028 --- Lowest Temperature
0x05 0x030 --- Highest Average Short Term Temperature
0x05 0x038 --- Lowest Average Short Term Temperature
0x05 0x040 - --- Highest Average Long Term Temperature
0x05 0x048 - --- Lowest Average Long Term Temperature
0x05 0x050 --- Time in Over-Temperature
0x05 0x058 --- Specified Maximum Operating Temperature
0x05 0x060 --- Time in Under-Temperature
0x05 0x068 --- Specified Minimum Operating Temperature
0x07 ===== = = === == Solid State Device Statistics (rev ) ==
0x07 0x008 N-- Percentage Used Endurance Indicator
|||_ C monitored condition met
||__ D supports DSN
|___ N normalized value SATA Phy Event Counters (GP Log 0x11)
ID Size Value Description
0x0003 R_ERR response for device-to-host data FIS
0x0004 R_ERR response for host-to-device data FIS
0x0006 R_ERR response for device-to-host non-data FIS
0x0007 R_ERR response for host-to-device non-data FIS
0x0009 Transition from drive PhyRdy to drive PhyNRdy
0x000a Device-to-host register FISes sent due to a COMRESET
0x000f R_ERR response for host-to-device data FIS, CRC
0x0012 R_ERR response for host-to-device non-data FIS, CRC
0x0001 Command failed due to ICRC error
2017年6月24日硬盘指标统计
当前的寿命为23%, 与之前的估算出入不大,寿命大概会在19年春天达到100%。
[archlinux][hardware] ThankPad T450自带SSD做bcache之后的使用寿命分析的更多相关文章
- 我和小美的撸码日记(1)之软件也需靠脸吃饭,带您做张明星脸(附后台经典框架 DEMO 下载)
众所周知程序员得靠技术吃饭,但是真的光靠技术就够了吗?Teacher苍,一位德艺双馨的艺术家,论技术她自然是炉火纯青,我觉得她桃李遍天下的原因不仅限于些,试想如果Teacher苍长得跟凤姐一样再带点乡 ...
- SPSS和Mplus如何做非线性中介调节效应分析?如倒U形曲线
SPSS和Mplus如何做非线性中介调节效应分析?如倒U形曲线 传统的线性回归模型用的比较多,但有时候变量之间的关系更符合非线性关系,此时使用非线性模型其拟合度会更好,模型预测效果更佳.在非线性关系中 ...
- [archlinux][hardware] 查看SSD的使用寿命
因为最近把16GB的SSD做成了HDD的cache,所以比较关系寿命问题. 使用smartctl工具. 参考:https://www.v2ex.com/t/261373 linux 下面只有 smar ...
- [archlinux][crypto] 从T450迁移archlinux操作系统至T460s笔记本
从T450笔记本迁移archlinux操作系统之T460s笔记本,同时: 1. 使用cryptsetup做底层块加密. 2. 全新使用btrfs文件系统. 一,硬盘分区. 1T的SSD,使用U ...
- 记一次使用 android 自带 WebView 做富文本编辑器之API、机型的兼容及各种奇葩bug的解决
转载请声明出处(http://www.cnblogs.com/linguanh/) 目录 1,测试设备介绍 2,开源项目richeditor及CrossWalk的选择 3,遇到的bug及其解决方法 4 ...
- 手把手带你做一个超炫酷loading成功动画view Android自定义view
写在前面: 本篇可能是手把手自定义view系列最后一篇了,实际上我也是一周前才开始真正接触自定义view,通过这一周的练习,基本上已经熟练自定义view,能够应对一般的view需要,那么就以本篇来结尾 ...
- Python带你做个愉快的"动森"玩家! (超简单代码)
最近Switch上的<动物森友会>可谓是炙手可热,它几乎算是任天堂版的<模拟人生>了,它的最新游戏<集合啦!动物森友会>(以下称“动森”)在发售后,取得了不错的媒体 ...
- 学就完事了!万星项目带你做 3D 游戏——GitHub 热点速览 v.21.18
本文首发于「HelloGitHub」微信公众号,搜索「HelloGitHub」点击关注解锁更多宝藏! 作者:HelloGitHub-小鱼干 新手开始学习的时候,都会遇到一个问题:如何开始学 xx?Se ...
- GitHub 热点速览 Vol.26:手把手带你做数据库
作者:HelloGitHub-小鱼干 摘要:手把手带你学知识,应该是学习新知识最友好的姿势了.toyDB 虽然作为一个"玩具"项目不能应用在实际开发中,但通过它你可以了解到如何制作 ...
随机推荐
- SystemErrorCodes
有人把SystemErrorCodes整理成了类,并定义了方法,用于返回消息,他大概不知道FormatMessage的用法,放在这里做参考吧 C# code snipppet class System ...
- System Error Codes
很明显,以下的文字来自微软MSDN 链接http://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx M ...
- Quartz资源收藏
项目中使用Quartz集群分享 : http://hot66hot.iteye.com/blog/1726143 发布 Quartz Job Scheduling Framework 中文 PDF 版 ...
- php上传图片文件常用的几个方法
1. 前台 <form class="add-form" method="post" action="/person/save" en ...
- java ArrayList 实现
关于ArrayList的实现和原理,原文出处:http://www.cnblogs.com/ITtangtang/p/3948555.html 我觉得他写的非常好,真的很好. 做一个记录和总结吧 pu ...
- October 23rd Week 44th Sunday 2016
When ambition ends, happiness begins. 野心消亡之日,正是快乐破茧之时. No ambition, no annoyance. No ambition, no ac ...
- 多个DataSet数据合并
DataSet ds = myIAppSet.GetHomeHottestList(siteID, , time); ].Rows.Count > ) { ds.Merge(ds1); } Me ...
- Ubuntu 配置有线网 IP
方法1: 最直接的办法,就是在右上端的网络那里点设置,然后add,选以太网,然后IPV4里,手动设置 -- add IP -- 填入IP地址.网关.子网掩码,OK. 方法2,3见网上教程: Ubunt ...
- Power BI for Office 365(七) Power BI站点
报表分享是Power BI for Office 365比较关键的一个功能,其中提供的Power BI站点将给这些报表一个安全的"归宿",同时也可以跟任何想要分享的人进行协作--- ...
- div滚动底部加载li,window滚动底部加载li
DIV固定高度滚动条滚动最底部,加载新的li <!DOCTYPE html> <html> <head> <meta charset="UTF-8& ...