Memory៖ RAM ធៀបនឹង Storage

មាតិកា

  1. ការចងចាំពីរប្រភេទ
  2. RAM៖ កន្លែងធ្វើការ
  3. Storage៖ ទូដាក់ឯកសារ
  4. ឋានានុក្រមនៃ Memory
  5. តើគម្លាតធំប៉ុណ្ណា?
  6. Cache៖ ទុករបស់ឲ្យនៅជិត
  7. នៅពេល RAM អស់
  8. តើរឿងនេះមានន័យយ៉ាងណាចំពោះកូដរបស់អ្នក
  9. សាកល្បងដោយខ្លួនឯង

1. ការចងចាំពីរប្រភេទ

មនុស្សជាញឹកញាប់ច្រឡំ «memory» និង «storage» — ការផ្សាយពាណិជ្ជកម្មទូរស័ព្ទអាចនិយាយថា «memory 8 GB និង storage 256 GB»។ ពួកវាជារបស់ពីរខុសគ្នាស្រឡះ៖

RAM (memory)Storage (SSD / hard drive)
តួនាទីផ្ទុកអ្វីដែលកំពុងប្រើ ឥឡូវនេះរក្សាទុក file សម្រាប់រយៈពេលវែង
ល្បឿនលឿនខ្លាំងយឺតជាងច្រើន
ទំហំ (laptop ធម្មតា)8–32 GB256 GB – 2 TB
តម្លៃក្នុងមួយ GBថ្លៃថោក
នៅពេលបិទភ្លើងអ្វីៗទាំងអស់បាត់អ្វីៗទាំងអស់នៅដដែល

សូមគិតដល់តុធ្វើការ និងទូដាក់ឯកសារ។ តុ របស់អ្នក (RAM) គឺជាកន្លែងដែលអ្នកដាក់ក្រដាសដែលអ្នកកំពុងធ្វើការ — តូច ប៉ុន្តែអ្វីៗទាំងអស់នៅក្បែរដៃ។ ទូដាក់ឯកសារ (storage) ផ្ទុកអ្វីៗទាំងអស់ដែលអ្នកមាន ប៉ុន្តែអ្នកត្រូវដើរទៅ ហើយរុករកដើម្បីរកអ្វីមួយ។

2. RAM៖ កន្លែងធ្វើការ

RAM មកពីពាក្យ Random Access Memory។ «Random access» មានន័យថា CPU អាចលោតទៅកាន់ byte ណាមួយក្នុងវាបានភ្លាមៗ តាមលំដាប់ណាក៏បាន ក្នុងល្បឿនស្មើៗគ្នា។

RAM ត្រូវបានរៀបចំជាជួរដ៏វែងនៃរន្ធដែលមានលេខ រន្ធនីមួយៗមួយ byte។ លេខរបស់រន្ធមួយគឺជា address របស់វា។ នៅពេលកម្មវិធីរបស់អ្នកមាន variable មួយ variable នោះស្ថិតនៅ address ណាមួយក្នុង RAM — CPU load វាពី address នោះ ធ្វើការលើវា ហើយ store វាត្រឡប់ទៅវិញ។

លក្ខណៈសំខាន់គឺ RAM គឺ volatile៖ វាត្រូវការថាមពលជាប់ជានិច្ចដើម្បីរក្សាទិន្នន័យរបស់វា។ បិទកុំព្យូទ័រ — ឬបើកម្មវិធីមួយ crash — នោះអ្វីដែលនៅតែក្នុង RAM នឹងបាត់។ នោះហើយជាមូលហេតុដែលការងារដែលមិនទាន់រក្សាទុក បាត់នៅពេលថ្ម laptop របស់អ្នកអស់។

អ្វីៗទាំងអស់ដែលកំពុងដំណើរការស្ថិតនៅក្នុង RAM៖ ប្រព័ន្ធប្រតិបត្តិការ កម្មវិធីដែលបើកនីមួយៗ browser tab នីមួយៗ និងទិន្នន័យទាំងអស់របស់ពួកវា។

3. Storage៖ ទូដាក់ឯកសារ

Storage គឺ non-volatile — វារក្សាទិន្នន័យទុកបាន ទោះបិទភ្លើងក៏ដោយ។ វាជាកន្លែងដែល file រូបថត កម្មវិធីដែលបានដំឡើង និងប្រព័ន្ធប្រតិបត្តិការខ្លួនវាផ្ទាល់ ត្រូវបានរក្សាទុកនៅពេលពួកវាមិនដំណើរការ។

មានពីរប្រភេទសំខាន់៖

  • SSD (Solid-State Drive) — រក្សាទុកទិន្នន័យក្នុង flash memory chip ដោយគ្មានផ្នែកដែលផ្លាស់ទី។ លឿន ស្ងាត់ ហើយជាស្តង់ដារនៅក្នុង laptop និងទូរស័ព្ទសម័យថ្មីស្ទើរតែទាំងអស់។
  • HDD (Hard Disk Drive) — រក្សាទុកទិន្នន័យលើថាសម៉ាញេទិចដែលវិល ជាមួយដៃដែលផ្លាស់ទីដើម្បីអានវា ដូចម៉ាស៊ីនចាក់ថាសតូចមួយ។ យឺតជាងច្រើន ប៉ុន្តែថោកខ្លាំងក្នុងមួយ gigabyte ដូច្នេះវានៅតែត្រូវបានប្រើសម្រាប់ backup និងការផ្ទុកទិន្នន័យច្រើន។

មុនពេល CPU អាចប្រើអ្វីមួយពី storage វាត្រូវតែ ចម្លងចូលទៅក្នុង RAM ជាមុនសិន។ ការបើកកម្មវិធីមួយមានន័យថាការអានវាពី storage ចូលទៅក្នុង RAM។ ការរក្សាទុកឯកសារមួយមានន័យថាការចម្លងវាពី RAM ត្រឡប់ទៅ storage វិញ។

4. ឋានានុក្រមនៃ Memory

RAM និង storage មិនមែនជាកន្លែងតែពីរដែលទិន្នន័យស្ថិតនៅនោះទេ។ មានជណ្តើរទាំងមូល ចាប់ពីតូច និងលឿន រហូតដល់ធំ និងយឺត៖

ឋានានុក្រមនៃ memory៖ register នៅខាងលើ បន្ទាប់មក CPU cache, RAM, SSD, hard drive និងបណ្តាញនៅខាងក្រោម

  • Register — នៅខាងក្នុង CPU សរុបតែពីរបីរយ byte ប៉ុណ្ណោះ។
  • CPU cache — នៅលើ chip របស់ CPU ពីរបី megabyte។
  • RAM — នៅក្បែរ CPU លើ motherboard ជា gigabyte។
  • SSD / HDD — ឆ្ងាយជាងនេះ រាប់រយ gigabyte ដល់ terabyte។
  • បណ្តាញ (network) — កុំព្យូទ័រមួយផ្សេងទៀតទាំងស្រុង ប្រហែលជានៅម្ខាងទៀតនៃពិភពលោក ស្ទើរតែគ្មានដែនកំណត់ ហើយយឺតបំផុតក្នុងចំណោមទាំងអស់។

ច្បាប់តែងតែដូចគ្នា៖ កាន់តែជិត CPU កាន់តែលឿន តូច និងថ្លៃ។

5. តើគម្លាតធំប៉ុណ្ណា?

លេខដូចជា «100 nanosecond» គឺពិបាកនឹងស្រមៃ។ ដូច្នេះ សូមស្រមៃថាកុំព្យូទ័រត្រូវបានធ្វើឲ្យយឺត រហូតដល់ ការអាន register មួយចំណាយពេល 1 វិនាទី។ នៅកម្រិតនោះ ប្រហែលជា៖

កន្លែងដែលទិន្នន័យនៅពេលវេលាពិត (ប្រហែល)បើ register ចំណាយពេល 1 វិនាទី
Register0.3 ns1 វិនាទី
CPU cache1–10 ns3–30 វិនាទី
RAM100 nsប្រហែល 5 នាទី
SSD50–150 µs2–6 ថ្ងៃ
Hard drive5–10 ms6 ខែ – 1 ឆ្នាំ
Network request ឆ្លងពិភពលោក150 msប្រហែល 15 ឆ្នាំ

លេខពិតប្រាកដខុសគ្នាពីម៉ាស៊ីនមួយទៅម៉ាស៊ីនមួយ ប៉ុន្តែរូបរាងរបស់វាមិនដែលប្រែប្រួលទេ៖ ជំហាននីមួយៗចុះក្រោមជណ្តើរ គឺ យឺតជាងជំហានខាងលើច្រើនដង។ ការទៅកាន់បណ្តាញ ធៀបនឹងការប្រើទិន្នន័យដែលមាននៅក្នុង CPU រួចហើយ គឺដូចជាការរង់ចាំចម្លើយអស់ដប់ប្រាំឆ្នាំ។

តារាងតែមួយនេះពន្យល់ពីដំបូន្មានជាច្រើនអំពី performance ដែលអ្នកនឹងឮពេញមួយអាជីពរបស់អ្នក។

6. Cache៖ ទុករបស់ឲ្យនៅជិត

ដោយសារ RAM យឺតជាង CPU ច្រើន CPU រក្សាទុកច្បាប់ចម្លងតូចមួយដ៏លឿននៃទិន្នន័យដែលទើបប្រើថ្មីៗ នៅលើ chip ផ្ទាល់។ នេះគឺជា CPU cache ដែលជាធម្មតាមានកម្រិតហៅថា L1 (តូចបំផុត លឿនបំផុត), L2 និង L3 (ធំបំផុត យឺតបំផុតក្នុងចំណោមទាំងបី)។

នៅពេល CPU ត្រូវការទិន្នន័យណាមួយ វាពិនិត្យ cache ជាមុនសិន៖

  • Cache hit — ទិន្នន័យមាននៅទីនោះរួចហើយ។ លឿន។
  • Cache miss — វាត្រូវទៅយកពី RAM។ យឺត ប៉ុន្តែឥឡូវវានៅក្នុង cache សម្រាប់លើកក្រោយ។

គំនិតដូចគ្នានេះ — រក្សាទុកច្បាប់ចម្លងលឿនៗនៃរបស់ដែលអ្នកប្រហែលជាត្រូវការម្តងទៀត — មាននៅគ្រប់ទីកន្លែងក្នុងពិភពកុំព្យូទ័រ មិនមែនតែនៅក្នុង CPU ប៉ុណ្ណោះទេ។ Browser របស់អ្នក cache រូបភាព ដូច្នេះការចូលមើលគេហទំព័រម្តងទៀតគឺលឿនជាង។ Server cache លទ្ធផល database ក្នុង RAM ដោយប្រើឧបករណ៍ដូចជា Redis។ វាសុទ្ធតែជាល្បិចដូចគ្នា ដែលអនុវត្តនៅកម្រិតផ្សេងៗគ្នានៃឋានានុក្រម។

7. នៅពេល RAM អស់

តើមានអ្វីកើតឡើង នៅពេលកម្មវិធីដែលបើកទាំងអស់រួមគ្នា ត្រូវការ RAM ច្រើនជាងអ្វីដែលអ្នកមាន?

ប្រព័ន្ធប្រតិបត្តិការចាប់ផ្តើមផ្លាស់ទីផ្នែកនៃ memory ដែលមិនបានប្រើថ្មីៗនេះ ចេញទៅ storage ដើម្បីបង្កើតកន្លែងទំនេរក្នុង RAM សម្រាប់អ្វីដែលកំពុងសកម្ម។ តំបន់នេះនៅលើ disk ត្រូវបានហៅថា swap (លើ Linux និង macOS) ឬ page file (លើ Windows)។ នៅពេលកម្មវិធីមួយត្រូវការទិន្នន័យនោះម្តងទៀត វាត្រូវបានចម្លងត្រឡប់ចូល RAM វិញ។

វាធ្វើឲ្យអ្វីៗនៅតែដំណើរការ — ប៉ុន្តែសូមចាំតារាងខាងលើ៖ storage យឺតជាង RAM រាប់ពាន់ដង។ នៅពេលកុំព្យូទ័រពឹងផ្អែកខ្លាំងលើ swap អ្វីៗទាំងអស់ក្លាយជាយឺតយ៉ាវ ហើយជារឿយៗអ្នកអាចឮ ឬមានអារម្មណ៍ថាវាកំពុងធ្វើការយ៉ាងខ្លាំង។ នោះហើយជាមូលហេតុពិតដែល «ការបិទ browser tab ខ្លះ» ជួយបាន៖ tab នីមួយៗកាន់ RAM មួយចំណែកផ្ទាល់ខ្លួន។

បើសូម្បីតែ swap ក៏មិនគ្រប់គ្រាន់ ប្រព័ន្ធប្រតិបត្តិការត្រូវធ្វើអ្វីមួយដ៏ធ្ងន់ធ្ងរ៖ លើ Linux យន្តការមួយដែលហៅថា OOM killer (Out Of Memory) ជ្រើសរើស process មួយ ហើយបញ្ចប់វាដោយបង្ខំ។ បើអ្នកធ្លាប់ឃើញ Docker container ឬកម្មវិធី server មួយស្លាប់ដោយបង្ហាញថា «out of memory» នេះហើយជាអ្វីដែលបានកើតឡើង។

8. តើរឿងនេះមានន័យយ៉ាងណាចំពោះកូដរបស់អ្នក

អ្នកមិនចាំបាច់គិតអំពី register នៅពេលសរសេរ web app ទេ។ ប៉ុន្តែឋានានុក្រមនេះកំណត់ការសម្រេចចិត្តប្រចាំថ្ងៃ៖

  • Variable មួយក្នុងកម្មវិធីរបស់អ្នកស្ថិតនៅក្នុង RAM (ហើយជាញឹកញាប់ក្នុង cache) — ការអានវាស្ទើរតែមិនចំណាយអ្វីសោះ។
  • ការអាន file មួយមានន័យថាការទៅកាន់ storage — យឺតជាងច្រើន ដូច្នេះជៀសវាងការធ្វើវាម្តងហើយម្តងទៀតក្នុង loop។
  • Database query ឬ API call ជាធម្មតាមានន័យថាការទៅតាមបណ្តាញ — ជំហានយឺតបំផុតក្នុងចំណោមទាំងអស់។ ទំព័រយឺតមួយ ជាញឹកញាប់បង្កឡើងដោយការហៅទាំងនេះច្រើនពេក។
  • ការ load file ដ៏ធំមួយទាំងមូលចូល memory អាចធ្វើឲ្យ RAM អស់ ហើយធ្វើឲ្យកម្មវិធីរបស់អ្នក crash។ ការដំណើរការវាជាផ្នែកៗ (streaming) ជៀសវាងបញ្ហានោះ។

9. សាកល្បងដោយខ្លួនឯង

មើលពីរបៀបដែល RAM របស់អ្នកកំពុងត្រូវបានប្រើឥឡូវនេះ៖

  • Windows៖ Task Manager → Performance → Memory។ សម្គាល់ «In use» និង «Available»។ បន្ទាប់មកទៅ tab Processes ហើយតម្រៀបតាម Memory។
  • macOS៖ Activity Monitor → tab Memory។ មើល «Memory Used», «Swap Used» និងក្រាហ្វ Memory Pressure នៅខាងក្រោម។
  • Linux៖ រត់ free -h ក្នុង terminal។

ឥឡូវនេះ បើក browser tab ដប់ ឬដប់ប្រាំ នៃគេហទំព័រធ្ងន់ៗ ហើយមើលលេខ memory កើនឡើង។ បិទពួកវាវិញ ហើយមើលវាធ្លាក់ចុះ។ តើកម្មវិធីណានៅលើកុំព្យូទ័ររបស់អ្នកកំពុងប្រើ RAM ច្រើនជាងគេ? (វាស្ទើរតែតែងតែជា web browser។)

RAM ផ្ទុកអ្វីដែលកំពុងដំណើរការឥឡូវនេះ storage ផ្ទុកអ្វីៗផ្សេងទៀតទាំងអស់។ បន្ទាប់ យើងនឹងមើលពីរបៀបដែល storage ត្រូវបានរៀបចំទៅជា file និង folder ដែលអ្នកប្រើរាល់ថ្ងៃ។

ទិញកាហ្វេជូនខ្ញុំ

ចូលចិត្តមេរៀននេះមែនទេ? សូមពិចារណាទិញកាហ្វេជូនខ្ញុំមួយកែវ ដើម្បីគាំទ្រការបង្កើតមាតិកាឥតគិតថ្លៃបន្ថែមទៀត!