这个分析的起因,是由于我之前干了这两个事:

[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. 我和小美的撸码日记(1)之软件也需靠脸吃饭,带您做张明星脸(附后台经典框架 DEMO 下载)

    众所周知程序员得靠技术吃饭,但是真的光靠技术就够了吗?Teacher苍,一位德艺双馨的艺术家,论技术她自然是炉火纯青,我觉得她桃李遍天下的原因不仅限于些,试想如果Teacher苍长得跟凤姐一样再带点乡 ...

  2. SPSS和Mplus如何做非线性中介调节效应分析?如倒U形曲线

    SPSS和Mplus如何做非线性中介调节效应分析?如倒U形曲线 传统的线性回归模型用的比较多,但有时候变量之间的关系更符合非线性关系,此时使用非线性模型其拟合度会更好,模型预测效果更佳.在非线性关系中 ...

  3. [archlinux][hardware] 查看SSD的使用寿命

    因为最近把16GB的SSD做成了HDD的cache,所以比较关系寿命问题. 使用smartctl工具. 参考:https://www.v2ex.com/t/261373 linux 下面只有 smar ...

  4. [archlinux][crypto] 从T450迁移archlinux操作系统至T460s笔记本

    从T450笔记本迁移archlinux操作系统之T460s笔记本,同时: 1.  使用cryptsetup做底层块加密. 2.    全新使用btrfs文件系统. 一,硬盘分区. 1T的SSD,使用U ...

  5. 记一次使用 android 自带 WebView 做富文本编辑器之API、机型的兼容及各种奇葩bug的解决

    转载请声明出处(http://www.cnblogs.com/linguanh/) 目录 1,测试设备介绍 2,开源项目richeditor及CrossWalk的选择 3,遇到的bug及其解决方法 4 ...

  6. 手把手带你做一个超炫酷loading成功动画view Android自定义view

    写在前面: 本篇可能是手把手自定义view系列最后一篇了,实际上我也是一周前才开始真正接触自定义view,通过这一周的练习,基本上已经熟练自定义view,能够应对一般的view需要,那么就以本篇来结尾 ...

  7. Python带你做个愉快的"动森"玩家! (超简单代码)

    最近Switch上的<动物森友会>可谓是炙手可热,它几乎算是任天堂版的<模拟人生>了,它的最新游戏<集合啦!动物森友会>(以下称“动森”)在发售后,取得了不错的媒体 ...

  8. 学就完事了!万星项目带你做 3D 游戏——GitHub 热点速览 v.21.18

    本文首发于「HelloGitHub」微信公众号,搜索「HelloGitHub」点击关注解锁更多宝藏! 作者:HelloGitHub-小鱼干 新手开始学习的时候,都会遇到一个问题:如何开始学 xx?Se ...

  9. GitHub 热点速览 Vol.26:手把手带你做数据库

    作者:HelloGitHub-小鱼干 摘要:手把手带你学知识,应该是学习新知识最友好的姿势了.toyDB 虽然作为一个"玩具"项目不能应用在实际开发中,但通过它你可以了解到如何制作 ...

随机推荐

  1. SystemErrorCodes

    有人把SystemErrorCodes整理成了类,并定义了方法,用于返回消息,他大概不知道FormatMessage的用法,放在这里做参考吧 C# code snipppet class System ...

  2. System Error Codes

    很明显,以下的文字来自微软MSDN 链接http://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx M ...

  3. Quartz资源收藏

    项目中使用Quartz集群分享 : http://hot66hot.iteye.com/blog/1726143 发布 Quartz Job Scheduling Framework 中文 PDF 版 ...

  4. php上传图片文件常用的几个方法

    1. 前台 <form class="add-form" method="post" action="/person/save" en ...

  5. java ArrayList 实现

    关于ArrayList的实现和原理,原文出处:http://www.cnblogs.com/ITtangtang/p/3948555.html 我觉得他写的非常好,真的很好. 做一个记录和总结吧 pu ...

  6. October 23rd Week 44th Sunday 2016

    When ambition ends, happiness begins. 野心消亡之日,正是快乐破茧之时. No ambition, no annoyance. No ambition, no ac ...

  7. 多个DataSet数据合并

    DataSet ds = myIAppSet.GetHomeHottestList(siteID, , time); ].Rows.Count > ) { ds.Merge(ds1); } Me ...

  8. Ubuntu 配置有线网 IP

    方法1: 最直接的办法,就是在右上端的网络那里点设置,然后add,选以太网,然后IPV4里,手动设置 -- add IP -- 填入IP地址.网关.子网掩码,OK. 方法2,3见网上教程: Ubunt ...

  9. Power BI for Office 365(七) Power BI站点

    报表分享是Power BI for Office 365比较关键的一个功能,其中提供的Power BI站点将给这些报表一个安全的"归宿",同时也可以跟任何想要分享的人进行协作--- ...

  10. div滚动底部加载li,window滚动底部加载li

    DIV固定高度滚动条滚动最底部,加载新的li <!DOCTYPE html> <html> <head> <meta charset="UTF-8& ...