草庐IT

不懂缓外速度就别买SSD

赵悟省 2023-03-28 原文
固态硬盘早已成为主流配置单的必选硬件,在价格战愈演愈烈的环境下,300元以下的1TB固态也层出不穷,如果直觉告诉你便宜的固态硬盘有猫腻,那么这次你的直觉是对的,问题就在缓外速度这里。

固态硬盘内部有点像CPU-内存-硬盘的关系,在写入数据的时候,由主控芯片先写入到缓存中,再由缓存写入到闪存颗粒中。有些SSD没有独立的缓存芯片,但是原理都是一样的。

主控芯片写入到缓存中的速度非常块,但是受限于缓存的空间,只能写入一定大小的文件,这里的速度就是缓存内速度,简称缓内速度。

在超过缓存空间之后,继续写入文件就要等缓存写入到闪存颗粒之后再写入了,这个速度取决于闪存颗粒的速度,也就是缓存外速度,简称缓外速度。

大多数情况下,消费者只知道SSD速度快,并不了解缓内速度和缓外速度之分,商家自然而然也就去宣传更快的缓内速度了,但只看缓内速度会导致一个问题,就是看不到闪存颗粒的读写速度。

因为缓内速度几乎不受闪存颗粒的影响,所以很多奸商会在SSD内配置劣质颗粒或回收颗粒来压缩成本,这时看缓内速度是发现不了猫腻的,只有缓外速度才能体现出闪存颗粒的实力。

随着价格的内卷加剧,SSD也在不断改进,很多低价SSD就采用了没有缓存的版本,直接在闪存颗粒中划出一部分空间,将工作模式模拟为SLC,这部分存储单元成为缓存,提供非常高的速度,这样既能有很高的缓内速度,同时还可以省下缓存芯片的成本。

正常情况下这么做没问题,可以满足要求不高同时预算不多的玩家的需求,但是有了山寨SSD之后,情况就不一样了。

山寨SSD模拟出来的SLC同样是在闪存颗粒中的,而这些闪存颗粒质量参差不齐,在长时间使用之后掉速是小事,一旦一个颗粒损坏会导致全盘数据丢失,这也是为什么我一直建议大家买大品牌的SSD,而不要碰山寨牌子。


有关不懂缓外速度就别买SSD的更多相关文章

  1. ruby-on-rails - 看不懂Ruby的神奇 - 2

    在railscasts项目中你可以看到这段代码:before(:each)dologin_asFactory(:user,:admin=>true)end函数对应的定义是:Factory.define:userdo|f|f.sequence(:github_username){|n|"foo#{n}"}end我不明白admin参数是如何传递给函数的,而函数中没有关于admin参数的字样。谢谢 最佳答案 Factory.define不是一个函数定义,它是一个方法,它接受一个符号或字符串(在本例中是用户)和一个定义你正在制作的工厂的bl

  2. java - Ruby 和 Java 的速度 - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。在我在网上找到的每个基准测试中,Ruby似乎都很慢,比Java慢得多。Ruby的人只是说这无关紧要。您能举个例子说明RubyonRails(以及Ruby本身)的速度真的无关紧要吗?

  3. ruby-on-rails - Ruby 的 range step 方法导致执行速度很慢? - 2

    我有这段代码:date_counter=Time.mktime(2011,01,01,00,00,00,"+05:00")@weeks=Array.new(date_counter..Time.now).step(1.week)do|week|logger.debug"WEEK:"+week.inspect@weeks从技术上讲,代码有效,输出:SatJan0100:00:00-05002011SatJan0800:00:00-05002011SatJan1500:00:00-05002011etc.但是执行时间完全是垃圾!每周计算大约需要四秒钟。我在这段代码中是否遗漏了一些奇怪的低效

  4. ruby - 一个方法定义以括号开头,看不懂它的用处 - 2

    在Ruby中,我看到这样一个方法的定义:def[](param)#dostuffend这个方法声明是什么意思?它是如何工作的?什么时候使用它?以及如何使用实例对象调用此类方法? 最佳答案 这是方法的名称,[]。您可能已经知道Array#[]或Hash#[]。在您的类(class)中,您也可以定义这样的方法。它会做什么-由您决定。classFoodef[](param)#bodyendendf=Foo.newf[:some_value] 关于ruby-一个方法定义以括号开头,看不懂它的用处

  5. ruby-on-rails - XPath 或 CSS 解析速度更快(对于 HTML 文件上的 Nokogiri)? - 2

    我想知道NokogiriXPath或CSS解析是否可以更快地处理HTML文件。速度有何不同? 最佳答案 Nokogiri没有XPath或CSS解析。它将XML/HTML解析为单个DOM,然后您可以使用CSS或XPath语法进行查询。CSS选择器在要求libxml2执行查询之前在内部转换为XPath。因此(对于完全相同的选择器)XPath版本会快一点点,因为CSS不需要先转换成XPath。但是,您的问题没有通用答案;这取决于您选择的是什么,以及您的XPath是什么样的。很有可能,您不会编写与Nokogiri创建的相同的XPath。例如

  6. ruby - proc、Proc.new、lambda 和 stabby lambda 之间的速度差异 - 2

    过程和lambdadiffer关于方法范围和return关键字的效果。我对它们之间的性能差异很感兴趣。我写了一个测试,如下所示:deftime(&block)start=Time.nowblock.callp"thattook#{Time.now-start}"enddeftest(proc)time{(0..10000000).each{|n|proc.call(n)}}enddeftest_block(&block)time{(0..10000000).each{|n|block.call(n)}}enddefmethod_testtime{(1..10000000).each{|

  7. ruby-on-rails - 如何加快为 rspec 测试创建 5,000 条记录的速度? - 2

    我正在使用RubyonRails3.2.2、FactoryGirl3.1.0、FactoryGirlRails3.1.0、Rspec2.9.0和RspecRails2.9.0。为了测试我的应用程序,我必须在数据库中创建大量记录(大约5000条),但是该操作非常慢(创建记录需要10多分钟)。我这样进行:before(:each)do5000.timesdoFactoryGirl.create(:article,)endend如何改进我的规范代码以加快速度?注意:可能速度较慢是由在每个文章创建过程前后运行的(5)个文章回调引起的,但我可以跳过这些(因为我唯一需要测试的是文章和不是关联的模型

  8. ruby-on-rails - 测试速度 : ActiveRecord use_transactional_fixtures vs. DatabaseCleaner.strategy = :transaction - 2

    从来源(database_cleaner,active_record)来看,它们应该同样快。但是有人声称使用database_cleaner的事务策略会降低Controller和模型规范的速度(forexample)。我手头没有用于基准测试的大型测试套件。任何人有任何见解或比较两者? 最佳答案 我花了一点时间在广泛使用ActiveRecord固定装置的中型代码库上比较两者。当我将其切换为使用DatabaseCleaner而不是use_transactional_fixtures时,模型规范开始花费大约两倍的时间。在进行了与您相同的比

  9. AiBote 2022 新研发的自动化框架,支持 Android 和 Windows 系统。速度非常快 - 2

    Ai-Bot基于流行的Node.js和JavaScript语言的一款新自动化框架,支持Windows和Android自动化。1、Windowsxpath元素定位算法支持支持Windows应用、.NET、WPF、Qt、Java和Electron客户端程序和ie、edgechrome浏览器2、Android支持原生APP和H5界面,元素定位速度是appium十倍,无线远程自动化操作多台安卓设备3、基于opencv图色算法,支持找图和多点找色,1080*2340全分辨率找图50MS以内4、内置免费OCR人工智能技术,无限制获取图片文字和找字功能。5、框架协议开源,除官方node.jsSDK外,用户可

  10. ruby - 为什么某些 Ruby 代码在 2.53GHz 上的运行速度是在 2.2GHz Core 2 Duo 处理器上的两倍? - 2

    (本题试图找出为什么一个程序在不同的处理器上运行会有所不同,所以它与编程的性能方面有关。)以下程序在配备2.2GHzCore2Duo的Macbook上运行需要3.6秒,在配备2.53GHzCore2Duo的MacbookPro上运行需要1.8秒。这是为什么?这有点奇怪……当CPU的时钟速度仅快15%时,为什么要加倍速度?我仔细检查了CPU仪表,以确保2个内核中没有一个处于100%使用率(以便查看CPU是否忙于运行其他东西)。难道是因为一个是MacOSXLeopard,一个是MacOSXSnowLeopard(64位)?两者都运行Ruby1.9.2。pRUBY_VERSIONpRUBY_

随机推荐