കമ്പ്യൂട്ടർ റിസോഴ്സ് യു എസ്എം. ഒരു ടോപ്പ് എൻഡ് ഒന്നിന് പകരം രണ്ട് മിഡ് റേഞ്ച് വീഡിയോ കാർഡുകൾ. ⇡ പ്രകടനം, സിന്തറ്റിക് ടെസ്റ്റുകൾ

പ്രോസസർ വിൽപ്പന ആരംഭിച്ചതിന് നന്ദി എഎംഡി റൈസൺഷെഡ്യൂളിന് 5 മുമ്പ് (ഏപ്രിൽ 11), ഈ പ്രോസസ്സറുകളുടെ ആദ്യ അവലോകനങ്ങൾ ഇതിനകം ദൃശ്യമാകുന്നു. സിന്തറ്റിക് ടെസ്റ്റുകളിലും ആധുനിക ഗെയിമുകളിലും 4-കോർ റൈസൺ 5 1400 പ്രോസസറിന്റെ പ്രകടനത്തെക്കുറിച്ച് ഞങ്ങൾ ഇതിനകം സംക്ഷിപ്തമായി സംസാരിച്ചു. ഇപ്പോൾ El Chapuzas Informatico-ൽ നിന്നുള്ള ഞങ്ങളുടെ സ്പാനിഷ് സഹപ്രവർത്തകർ 6-core-ന്റെ ഒരു അവലോകനം പ്രസിദ്ധീകരിച്ചു. എഎംഡി പ്രൊസസർറൈസൺ 5 1600.

ഈ പ്രോസസ്സറിന് ആറ് ഉണ്ട് ഫിസിക്കൽ കോറുകൾഅവയിൽ ഓരോന്നിനും രണ്ട് കമ്പ്യൂട്ടേഷണൽ ത്രെഡുകൾ ഉണ്ട്, അത് ആത്യന്തികമായി പന്ത്രണ്ട് ത്രെഡുകൾ നൽകുന്നു. അടിസ്ഥാന ആവൃത്തിപ്രോസസർ വേഗത 3.2 GHz ആണ്, ഇതിന് ചലനാത്മകമായി 3.6 GHz വരെ വർദ്ധിപ്പിക്കാൻ കഴിയും. AMD Ryzen 5 1600-ന്റെ ആകെ മൂന്നാം-തല കാഷെ 16 MB (8+8 MB) ആണ്, കൂടാതെ ഓരോ കോറിനും യഥാക്രമം 512 kB രണ്ടാം ലെവൽ കാഷെയും 64, 32 kB ഫസ്റ്റ്-ലെവൽ ഇൻസ്ട്രക്ഷൻ, ഡാറ്റ കാഷെ എന്നിവയും ഉണ്ട്. മറ്റുള്ളവരെ പോലെ റൈസൺ പ്രോസസർ, ഈ ചിപ്പ് ഒരു സോക്കറ്റ് AM4 പാക്കേജിൽ സ്ഥാപിച്ചിരിക്കുന്നു, കൂടാതെ 64 W ന്റെ TDP ഉണ്ട്. യുഎസ് വിപണിയിൽ പുതിയ ഉൽപ്പന്നത്തിന്റെ ശുപാർശ വില $219 ആണ്.

കോൺഫിഗറേഷൻ ടെസ്റ്റ് ബെഞ്ച്, ഞങ്ങളുടെ സഹപ്രവർത്തകർ ഉപയോഗിക്കുന്ന, ഇനിപ്പറയുന്ന ഘടകങ്ങൾ പ്രതിനിധീകരിക്കുന്നു:

  • മദർബോർഡ്: MSI X370 XPower ഗെയിമിംഗ് ടൈറ്റാനിയം;
  • റാം: G.Skill TridentZ DDR4 3600 MHz, 2400 MHz-ൽ പ്രവർത്തിക്കുന്നു;
  • വീഡിയോ കാർഡ്: എംഎസ്ഐ ജിഫോഴ്സ് GTX 1070 ഗെയിമിംഗ് Z;
  • പവർ സപ്ലൈ: മിണ്ടാതിരിക്കുക! ഡാർക്ക് പവർ Pro11 1200 V;
  • സോളിഡ് സ്റ്റേറ്റ് ഡ്രൈവുകൾ: Kingston SSDNow KC400 128 GB, Corsair LX 512 GB;
  • തണുപ്പിക്കൽ സംവിധാനം: വ്രെയ്ത്ത് സ്പയർ;
  • ഓപ്പറേറ്റിംഗ് സിസ്റ്റം: വിൻഡോസ് 10 64 ബിറ്റ്.

Ryzen 5 1600 പ്രോസസറിന്റെ ഒരൊറ്റ കോറിന്റെ പ്രകടനം Ryzen 7 1700X ന്റെ ഒരൊറ്റ കോറിന്റെ പ്രകടനത്തിൽ നിന്ന് വളരെ വ്യത്യസ്തമല്ല, കാരണം അവ ഒരേ സിലിക്കൺ ക്രിസ്റ്റലുകളിൽ നിർമ്മിച്ചിരിക്കുന്നതിനാൽ, ആറ് കോർ പ്രോസസ്സറിന് മാത്രമേ രണ്ട് കോറുകൾ പ്രവർത്തനരഹിതമാക്കിയിട്ടുള്ളൂ. .

മൾട്ടി-ത്രെഡിൽ CPU-Z ടെസ്റ്റുകൾ wPrime 2.1 (32M) എന്നിവയും, പുതിയ ഉൽപ്പന്നം വളരെ മികച്ച പ്രകടനം പ്രകടമാക്കിക്കൊണ്ട്, പ്രതീക്ഷിച്ച ഫലങ്ങൾ കാണിച്ചു.

Cinebench 15-ൽ, പുതിയ ഉൽപ്പന്നം 4.9 GHz-ലേക്ക് ഓവർലോക്ക് ചെയ്‌തതിനെക്കാൾ മുന്നിലായിരുന്നു, കൂടാതെ അധികവും. വേഗത്തിലുള്ള മെമ്മറി(3600 MHz) കൂടുതൽ ചെലവേറിയ ക്വാഡ് കോർ ഇന്റൽ കോർ i7-7700K, മാത്രമല്ല ആറ് കോർ ഇന്റൽ കോർ i7-5930K. എന്നാൽ വീഡിയോ എൻകോഡിംഗിൽ രണ്ടാമത്തേത് വേഗതയുള്ളതായി മാറി.

Ryzen 5 1600 പ്രോസസർ മെമ്മറിയിൽ പ്രവർത്തിക്കുന്നില്ല സാധ്യമായ ഏറ്റവും മികച്ച രീതിയിൽ, Ryzen 7 1700X നെ അപേക്ഷിച്ച് അൽപ്പം മികച്ചതാണെങ്കിലും.

ചില സിന്തറ്റിക് ടെസ്റ്റുകളിൽ, എഎംഡിയുടെ പുതിയ ഉൽപ്പന്നം കാണിക്കുന്നു മികച്ച സ്കോറുകൾ, Ryzen 7 1700X മായി താരതമ്യപ്പെടുത്തുമ്പോൾ, ചില സന്ദർഭങ്ങളിൽ ഇത് അതിനെക്കാൾ അല്പം താഴ്ന്നതാണ്. ഭൂരിപക്ഷത്തിലും സിന്തറ്റിക് ടെസ്റ്റുകൾ ഇന്റൽ പ്രോസസർ Core i7-6700K രണ്ട് എഎംഡി പ്രതിനിധികളേക്കാളും വേഗതയുള്ളതായി മാറുന്നു.

സംബന്ധിച്ചു ഗെയിമിംഗ് പ്രകടനം, അപ്പോൾ അത് വളരെ ശ്രദ്ധേയമാണ്. മിക്ക ടെസ്റ്റുകളിലും പൂർണ്ണ റെസലൂഷൻ HD (1920 x 1080 പിക്സലുകൾ) പുതിയ ഉൽപ്പന്നം കൂടുതൽ പിന്നിലല്ല വിലകൂടിയ ഇന്റൽകോർ i7-6700K, ചില സന്ദർഭങ്ങളിൽ അതിനും മുന്നിലാണ്. ഡൂം ഗെയിമുകളിൽ (കൂടെ OpenGL ഉപയോഗിക്കുന്നു) കൂടാതെ Rise of Tomb Raider (DirectX 11 ഉപയോഗിച്ച്), Ryzen 5 1600 പ്രോസസർ Ryzen 7 1700X-നേക്കാൾ വളരെ മുന്നിലാണ്.

4K UHD റെസല്യൂഷനിൽ (3840 x 2160 പിക്സലുകൾ) സ്ഥിതി ഏകദേശം സമാനമാണ്, മിക്ക ഗെയിമുകളുടെയും കാര്യത്തിൽ ഇതെല്ലാം വീഡിയോ കാർഡിന്റെ പ്രകടനത്തിലേക്ക് വരുന്നു.

കോ സ്റ്റാൻഡേർഡ് സിസ്റ്റംകൂളിംഗ്, പ്രോസസർ ഫ്രീക്വൻസി 3.9 GHz ആയി ഉയർത്തി, കോർ വോൾട്ടേജ് 1.36 V ആയിരുന്നു. പുതിയ ഉൽപ്പന്നം എത്രമാത്രം ഓവർലോക്ക് ചെയ്യാൻ കഴിയുമെന്നത് രസകരമായിരിക്കും. ദ്രാവക തണുത്തു, അങ്ങേയറ്റത്തെ ഓവർക്ലോക്കിംഗിൽ അത് ഏത് ആവൃത്തികളെ കീഴടക്കും.

നിഷ്ക്രിയാവസ്ഥയിൽ AMD Ryzen 5 1600 പ്രൊസസറിന്റെ താപനില 39 ഡിഗ്രി സെൽഷ്യസാണ്, ലോഡിന് കീഴിൽ ഇത് 62 - 65 ഡിഗ്രി സെൽഷ്യസാണ്. ഗെയിമുകളിലെ പുതിയ ഉൽപ്പന്നത്തെ അടിസ്ഥാനമാക്കിയുള്ള സിസ്റ്റത്തിന്റെ ഉപഭോഗം 245 W ആയിരുന്നു, ഇത് സിസ്റ്റത്തിന്റെ ഉപഭോഗത്തിന് ഏകദേശം തുല്യമാണ് ഇന്റൽ അടിസ്ഥാനമാക്കിയുള്ളത്കോർ i7-6700K, ഇത് 250 W ന് തുല്യമാണ്.

സിന്തറ്റിക് ടെസ്റ്റുകൾ

IN യഥാർത്ഥ അവലോകനംഎല്ലാ ടെസ്റ്റുകളും പോകുന്നു വ്യത്യസ്ത പേജുകൾ, ഞാൻ സൗകര്യാർത്ഥം അവയെ സംയോജിപ്പിക്കും, പക്ഷേ അവയെ സിന്തറ്റിക്സ്, ഗെയിമിംഗ് എന്നിങ്ങനെ വിഭജിക്കും.

Wprime 2.0

മൾട്ടി-കോർ പ്രോസസറുകൾ പരിശോധിക്കുന്നതിനുള്ള ഒരു അറിയപ്പെടുന്ന യൂട്ടിലിറ്റി ചില കണക്കുകൂട്ടലുകൾ നടത്തി അവയുടെ ശക്തി നിർണ്ണയിക്കുന്നു. ടെസ്റ്റ് നടത്തുന്നതിന് കുറച്ച് സമയം ചെലവഴിക്കുന്നു, മികച്ച ഫലം.

ഏറ്റവും വേഗതയേറിയത് (അതിന്റെ ക്ലോക്ക് ഫ്രീക്വൻസി നൽകിയതിൽ അതിശയിക്കാനില്ല) ഇന്നത്തെ ടെസ്റ്റിന്റെ പ്രധാന പ്രോസസറായി മാറി. Core i5 2300, i5 760-നേക്കാൾ ഒരു സെക്കൻഡ് പിന്നിലാണെന്നത് അസുഖകരമായ ആശ്ചര്യമായിരുന്നു (അതേ ആവൃത്തിയിൽ). ഒരുപക്ഷേ ബാധിച്ചു ചെറിയ വലിപ്പംമൂന്നാം ലെവൽ കാഷെ.

ഫ്രിറ്റ്സ് ചെസ്സ് ബെഞ്ച്മാർ

വിവിധ ചെസ്സ് അൽഗോരിതങ്ങൾ പ്രോസസ്സ് ചെയ്തുകൊണ്ട് പ്രോസസറിന്റെ പ്രകടനം നിർണ്ണയിക്കുന്ന ഒരു ടെസ്റ്റാണിത്. ഈ മാനദണ്ഡത്തിൽ, കൂടുതൽ പോയിന്റുകൾ, മികച്ച ഫലം.

"പഴയ" കോർ i5 760 സാൻഡി ബ്രിഡ്ജ് കുടുംബത്തിലെ എല്ലാ പ്രതിനിധികളും മറികടന്നു.

WinRAR 3.92

ഈ ആർക്കൈവറിന് ആമുഖം ആവശ്യമില്ല. കംപ്രഷന്റെ KB/s എണ്ണം അനുസരിച്ചായിരിക്കും പ്രകടനം നിർണ്ണയിക്കുക ചില ഫയലുകൾ. വലുത്, നല്ലത്.


ചിത്രം ആദ്യ ടെസ്റ്റിലെ പോലെ തന്നെയാണ്, 2500K ലീഡ് ചെയ്യുന്നു, തുടർന്ന് വലിയ ലാഗ് 760 ആണ്, രണ്ട് ചുവടുകൾ പിന്നിലാണ് i5 2300.

7-സിപ്പ് 9.13

അറിയപ്പെടുന്ന മറ്റൊരു ആർക്കൈവർ, ഞാൻ വ്യക്തിപരമായി പലർക്കും ശുപാർശ ചെയ്‌തു (ഇത് RAR, ZIP എന്നിവയേക്കാൾ മികച്ച രീതിയിൽ പ്രവർത്തിക്കുന്നു, ഇത് നന്നായി പ്രവർത്തിക്കുന്നു മൾട്ടി-കോർ പ്രോസസ്സറുകൾകൂടാതെ x64 OS, കൂടാതെ പൂർണ്ണമായും സൗജന്യം) യഥാസമയം. മുമ്പത്തെ ടെസ്റ്റിലെ അതേ രീതിയിലാണ് പ്രകടനം കണക്കാക്കുന്നത്.


ഫയലുകളുടെ കംപ്രഷൻ (ആദ്യ ഗ്രാഫ്), ഡീകംപ്രഷൻ (രണ്ടാം) മോഡുകളിലാണ് പരിശോധന നടത്തിയത്. ആരാണ് നയിക്കുന്നത്, എത്രമാത്രം നയിക്കുന്നു എന്നത് വ്യക്തമായി കാണാം.

അഡോബ് ഫോട്ടോഷോപ്പ് CS5

പ്രശസ്തമായ പ്രോസസ്സിംഗ് പാക്കേജ് ഗ്രാഫിക് ഫയലുകൾ. പ്രോസസറുകൾ എങ്ങനെ കൃത്യമായി പരീക്ഷിച്ചുവെന്ന് എനിക്ക് മനസ്സിലായില്ല (നിങ്ങൾക്ക് എന്തെങ്കിലും ആശയങ്ങൾ ഉണ്ടെങ്കിൽ, എന്നോട് പറയൂ), എന്നിരുന്നാലും, ഫലങ്ങൾ നോക്കാം:


പ്രത്യക്ഷത്തിൽ, ഫലം നിമിഷങ്ങൾക്കുള്ളിൽ. കുറവ് നല്ലത്. "സാൻഡി ബ്രിഡ്ജസ്" ആണ് മുന്നിൽ

POV-റേ 3.7

POV-റേ ജനപ്രിയ പരിപാടികൂടെ തുറന്ന ഉറവിടംഫ്ലോട്ടിംഗ് പോയിന്റ് പ്രവർത്തനങ്ങളിൽ പ്രോസസ്സറുകൾ പരിശോധിക്കുന്നതിനായി. ടെസ്റ്റിലെ പോയിന്റുകളുടെ എണ്ണം സെക്കൻഡിൽ റെൻഡർ ചെയ്ത പിക്സലുകളുടെ എണ്ണമാണ്, കൂടുതൽ, മികച്ചത്.


മുമ്പത്തെ പരീക്ഷയിൽ നിന്നുള്ള സാഹചര്യം ആവർത്തിക്കുന്നു. i5 760 നേക്കാൾ i5 2300 ന് എന്ത് നേട്ടമുണ്ടെന്ന് ദയവായി ശ്രദ്ധിക്കുക (ഞാൻ അത് നിങ്ങളെ ഓർമ്മിപ്പിക്കട്ടെ ക്ലോക്ക് ആവൃത്തി, രണ്ട് പ്രോസസറുകൾക്കും ഒന്നുതന്നെയാണ്)! തീർച്ചയായും, പുതിയ വാസ്തുവിദ്യസ്വഭാവം കാണിക്കുന്നു. അല്ലെങ്കിൽ ടർബോ മോഡ് സഹായിക്കുമോ?

CineBench R11.5

"സിനിബെഞ്ച്" ന് ആമുഖം ആവശ്യമില്ല, 3D റെൻഡറിംഗ് അവസ്ഥയിൽ പ്രോസസർ പ്രകടനത്തിന്റെ (സിങ്കിൾ-ത്രെഡിലും മൾട്ടി-ത്രെഡ് മോഡിലും) മികച്ച പരീക്ഷണം.


മുമ്പത്തെ നിരവധി പരിശോധനകളിലെ ചിത്രത്തിന് സമാനമാണ്. "പാലങ്ങൾ" മുന്നിലാണ്, 760 പിന്നിലാണ്. പുതിയ ഉൽപ്പന്നങ്ങളുടെ പ്രയോജനം വളരെ ദൃഢമാണ്.

H.264 എൻകോഡർ V2

വീഡിയോ എൻകോഡിംഗ് എന്നത് ആളുകൾ പലപ്പോഴും ഏറ്റെടുക്കുന്ന ഒരു ജോലിയാണ് ശക്തമായ പ്രോസസ്സറുകൾ. വീഡിയോ മെറ്റീരിയൽ h264 ലേക്ക് എൻകോഡ് ചെയ്യാൻ കുറച്ച് സമയമെടുക്കും, നല്ലത്.


മോശം 760! സാൻഡി ബ്രിഡ്ജ്", അതിന് വിജയിക്കാനുള്ള അവസരം നൽകരുത്. എനിക്ക് ഇതിനകം തന്നെ അത്തരമൊരു പ്രോസസർ വേണം (കുറഞ്ഞത് ഒരു ഹെക്‌സാകോർ മാത്രം), ഉടനടി 4.5-5 GHz വരെ ഓവർലോക്ക് ചെയ്യുന്നതാണ് നല്ലത്. അല്ലെങ്കിൽ, Atom, Q9550 എന്നിവയിൽ, വീഡിയോ എൻകോഡിംഗ് അങ്ങനെയല്ല മുമ്പത്തെപ്പോലെ സന്തോഷം

ഒരു സ്റ്റാറ്റിക് കോഡ് അനലൈസറിന്റെ കഴിവുകൾ വിലയിരുത്താൻ ആരെങ്കിലും കൈകൊണ്ട് തയ്യാറാക്കിയ കോഡ് ഉദാഹരണങ്ങൾ ഉപയോഗിക്കാൻ ശ്രമിക്കുമ്പോൾ എനിക്കത് ഇഷ്ടമല്ല. ഇപ്പോള് മുതല് നിർദ്ദിഷ്ട ഉദാഹരണംസിന്തറ്റിക് ടെസ്റ്റുകളോട് എനിക്ക് നിഷേധാത്മക മനോഭാവം ഉള്ളത് എന്തുകൊണ്ടാണെന്ന് ഞാൻ തെളിയിക്കും.

അധികം താമസിയാതെ, ബിൽ ടോർപെ തന്റെ ബ്ലോഗായ “Even Mo “Static”-ൽ ഒരു കുറിപ്പ് എഴുതി, അവിടെ അദ്ദേഹം തന്റെ അഭിപ്രായത്തിൽ, itc-benchmarks പ്രോജക്റ്റ് വിശകലനം ചെയ്യുമ്പോൾ Cppcheck, PVS-Studio ടൂളുകൾ എങ്ങനെ പ്രവർത്തിച്ചുവെന്ന് പറഞ്ഞു. ടൊയോട്ട ഐടിസിയിൽ നിന്നുള്ള സ്റ്റാറ്റിക് വിശകലന മാനദണ്ഡങ്ങൾ.

ലേഖനം വായിച്ചതിനുശേഷം എനിക്ക് അത് ഇഷ്ടപ്പെട്ടില്ല, Cppcheck, PVS-Studio അനലൈസറുകൾ അവയുടെ കഴിവുകളിൽ ഏകദേശം തുല്യമാണെന്ന് തോന്നുന്നു. ഒരു അനലൈസർ ഒരു മേഖലയിലും മറ്റൊന്ന് മറ്റൊന്നിലും മികച്ച പ്രകടനം കാഴ്ചവയ്ക്കുന്നു, എന്നാൽ പൊതുവായി അവരുടെ ഡയഗ്നോസ്റ്റിക് കഴിവുകൾ സമാനമാണ് എന്ന് ലേഖനത്തിൽ നിന്ന് ഇത് പിന്തുടരുന്നു.

ഞാൻ അങ്ങനെ കരുതുന്നില്ല. ഞങ്ങളുടെ PVS-Studio അനലൈസർ Cppcheck നേക്കാൾ പലമടങ്ങ് ശക്തമാണെന്നാണ് എന്റെ അഭിപ്രായം. പൊതുവേ, ഇത് ഒരു "അഭിപ്രായം" അല്ല, എനിക്കറിയാം!

എന്നിരുന്നാലും, PVS-Studio Cppcheck-നേക്കാൾ 10 മടങ്ങ് മികച്ചതാണെന്ന് പുറത്ത് നിന്ന് വ്യക്തമല്ലാത്തതിനാൽ, കാരണം മനസ്സിലാക്കാൻ ശ്രമിക്കണം. ഇതേ ഐടിസി-ബെഞ്ച്മാർക്കുകൾ നോക്കാനും ഈ ടെസ്റ്റ് ബേസിൽ PVS-സ്റ്റുഡിയോ മികച്ച പ്രകടനം നടത്താത്തത് എന്തുകൊണ്ടാണെന്ന് കണ്ടെത്താനും ഞാൻ തീരുമാനിച്ചു.

ഞാൻ അതിൽ കൂടുതൽ നോക്കുന്തോറും എനിക്ക് കൂടുതൽ പ്രകോപിതനായി. ഒരു ഉദാഹരണം എന്നെ പൂർണ്ണമായും സമനില തെറ്റിച്ചു, അതിനെക്കുറിച്ച് ഞാൻ നിങ്ങളോട് കുറച്ചുകൂടി താഴെ പറയും. എന്റെ നിഗമനങ്ങൾ ഇതാണ്: ബിൽ ടോർപ്പിയെക്കുറിച്ച് എനിക്ക് പരാതികളൊന്നുമില്ല. അദ്ദേഹം നല്ല, സത്യസന്ധമായ ഒരു ലേഖനം എഴുതി. നന്ദി ബിൽ. എന്നാൽ ടൊയോട്ട ഐടിസിയെക്കുറിച്ച് എനിക്ക് പരാതിയുണ്ട്. എന്റെ വ്യക്തിപരമായ അഭിപ്രായം: അവരുടെ പരീക്ഷണ അടിസ്ഥാനം മോശമാണ്. ഇത് തീർച്ചയായും ഒരു വലിയ പ്രസ്താവനയാണ്, എന്നാൽ സ്റ്റാറ്റിക് കോഡ് അനലൈസറുകളെക്കുറിച്ചും അവ എങ്ങനെ വിലയിരുത്താമെന്നും സംസാരിക്കാൻ എനിക്ക് മതിയായ യോഗ്യതകളും അനുഭവപരിചയവും ഉണ്ടെന്ന് ഞാൻ വിശ്വസിക്കുന്നു. എന്റെ അഭിപ്രായത്തിൽ, ഒരു പ്രത്യേക അനലൈസറിന്റെ കഴിവുകൾ വേണ്ടത്ര വിലയിരുത്താൻ itc-benchmarks ഉപയോഗിക്കാനാവില്ല.

എന്നെ പൂർണ്ണമായും സമനില തെറ്റിച്ച യഥാർത്ഥ പരീക്ഷണം ഇതാ.

അപ്പോൾ എന്താണ് സംഭവിക്കുന്നത്, ഈ ഉദാഹരണത്തിലെ Cppcheck നേക്കാൾ PVS-Studio ദുർബലമാണോ? ഇല്ല, അവൻ കൂടുതൽ ശക്തനാണ്!

PVS-Studio അനലൈസർ ഈ കോഡ് മനഃപൂർവ്വം എഴുതിയതാണെന്നും ഇവിടെ ഒരു പിശകും ഇല്ലെന്നും മനസ്സിലാക്കുന്നു.

സമാനമായ കോഡ് എഴുതുമ്പോൾ സാഹചര്യങ്ങളുണ്ട് പ്രത്യേകമായിഒരു നൾ പോയിന്റർ ഒഴിവാക്കുമ്പോൾ ഒരു അപവാദം എറിയാൻ കാരണമാകുന്നു. ഇത് ടെസ്റ്റുകളിലോ കോഡിന്റെ പ്രത്യേക മേഖലകളിലോ കണ്ടെത്താനാകും. സമാനമായ കോഡ് നമ്മൾ പലതവണ കണ്ടിട്ടുണ്ട്. ഇവിടെ, ഉദാഹരണത്തിന്, ഒരു യഥാർത്ഥ പ്രോജക്റ്റിൽ ഇത് എങ്ങനെയായിരിക്കാം:

അസാധുവായ GpuChildThread::OnCrash() ( LOG(INFO)<< "GPU: Simulating GPU crash"; // Good bye, cruel world. volatile int* it_s_the_end_of_the_world_as_we_know_it = NULL; *it_s_the_end_of_the_world_as_we_know_it = 0xdead; }
അതിനാൽ, PVS-Studio അനലൈസറിൽ, V522 ഡയഗ്നോസ്റ്റിക്സിൽ നിരവധി ഒഴിവാക്കലുകൾ നടപ്പിലാക്കിയിട്ടുണ്ട്, അങ്ങനെ അത്തരം കോഡിൽ ആണയിടരുത്. അനലൈസർ അത് കാണുന്നു null_pointer_001ഒരു യഥാർത്ഥ പ്രവർത്തനമല്ല. യഥാർത്ഥ കോഡിൽ, ഒരു പോയിന്ററിലേക്ക് ഒരു പൂജ്യം എഴുതുകയും ഉടനടി ഡിറഫറൻസ് ചെയ്യുകയും ചെയ്യുമ്പോൾ ഫംഗ്ഷനുകളിൽ പിശകുകളൊന്നുമില്ല. ഫംഗ്‌ഷന്റെ പേര് അനലൈസറോട് “നൾ പോയിന്റർ” ഒരു കാരണത്താൽ ഉണ്ടെന്ന് പറയുന്നു.

അത്തരം സന്ദർഭങ്ങളിൽ, A6 ഒഴിവാക്കൽ ഡയഗ്നോസ്റ്റിക് V522-ൽ നടപ്പിലാക്കുന്നു. സിന്തറ്റിക് പ്രവർത്തനവും ഇതിന് കീഴിലാണ് null_pointer_001. A6 ഒഴിവാക്കൽ എത്ര അപകടകരമാണ്:

ഒരു വേരിയബിളിന്റെ dereference ഒരു ഫംഗ്ഷനിലാണ്, അതിന്റെ പേരിൽ പദങ്ങളിലൊന്ന് അടങ്ങിയിരിക്കുന്നു:

  • പിശക്
  • സ്ഥിരസ്ഥിതി
  • തകര്ച്ച
  • ശൂന്യം
  • പരീക്ഷ
  • ലംഘനം
  • എറിയുക
  • ഒഴിവാക്കൽ
ഈ സാഹചര്യത്തിൽ, മുകളിലെ വരിയിൽ വേരിയബിളിന് 0 നൽകിയിരിക്കുന്നു.

സിന്തറ്റിക് ടെസ്റ്റ് ഈ അപവാദം പൂർണ്ണമായും പാലിച്ചു. ആദ്യം, ഫംഗ്ഷൻ നാമത്തിൽ "null" എന്ന വാക്ക് ഉണ്ട്. രണ്ടാമതായി, ഒരു വേരിയബിളിലേക്ക് പൂജ്യം അസൈൻമെന്റ് ചെയ്യുന്നത് മുമ്പത്തെ വരിയിൽ തന്നെ സംഭവിക്കുന്നു. ഒഴിവാക്കൽ അസാധുവായ കോഡ് കണ്ടെത്തി. കോഡ് ശരിക്കും യഥാർത്ഥമല്ല, ഇതൊരു സിന്തറ്റിക് ടെസ്റ്റാണ്.

സിന്തറ്റിക് ടെസ്റ്റുകൾ എനിക്ക് ഇഷ്ടപ്പെടാത്തത് ഇതുപോലുള്ള സൂക്ഷ്മതകൾ മൂലമാണ്!

itc-benchmarks സംബന്ധിച്ച് എനിക്ക് മറ്റ് പരാതികളുണ്ട്. ഉദാഹരണത്തിന്, ഒരേ ഫയലിലുള്ള എല്ലാം, നമുക്ക് ഈ ടെസ്റ്റ് കാണാൻ കഴിയും:

അസാധുവായ null_pointer_006 () ( int *p; p = (int *)(intptr_t)rand(); *p = 1; /* ടൂൾ ഈ ലൈൻ പിശകായി കണ്ടെത്തണം*/ /*പിശക്: NULL പോയിന്റർ ഡെററൻസ്*/ )
ഫംഗ്ഷൻ റാൻഡ് 0 തിരികെ നൽകാം, അത് NULL ആയി മാറുന്നു. PVS-Studio അനലൈസറിന് ഇതുവരെ എന്ത് തിരികെ നൽകാമെന്ന് അറിയില്ല റാൻഡ്അതിനാൽ ഈ കോഡിൽ സംശയാസ്പദമായ ഒന്നും കാണുന്നില്ല.

ഒരു ഫംഗ്‌ഷൻ എന്താണെന്ന് നന്നായി മനസ്സിലാക്കാൻ അനലൈസറിനെ പഠിപ്പിക്കാൻ ഞാൻ എന്റെ സഹപ്രവർത്തകരോട് ആവശ്യപ്പെട്ടു റാൻഡ്. പോകാൻ ഒരിടവുമില്ല, നിങ്ങൾ ഒരു ഫയൽ ഉപയോഗിച്ച് അനലൈസർ മൂർച്ച കൂട്ടേണ്ടതുണ്ട്, അതുവഴി സംശയാസ്പദമായ ടെസ്റ്റ് ബേസിൽ അത് മികച്ച പ്രകടനം കാഴ്ചവയ്ക്കും. അനലൈസറുകൾ വിലയിരുത്തുന്നതിന് സമാനമായ ടെസ്റ്റുകൾ ഉപയോഗിക്കുന്നതിനാൽ ഇത് ആവശ്യമായ അളവാണ്.

പക്ഷേ പേടിക്കേണ്ട. ഞങ്ങൾ യഥാർത്ഥ നല്ല ഡയഗ്നോസ്റ്റിക്സിൽ പ്രവർത്തിക്കുന്നത് തുടരുമെന്നും, അനലൈസർ ടെസ്റ്റുകളിലേക്ക് ക്രമീകരിക്കരുതെന്നും ഞാൻ പ്രഖ്യാപിക്കുന്നു. ഒരുപക്ഷേ, ഐടിസി-ബഞ്ച്മാർക്കുകൾക്കായി ഞങ്ങൾ പിവിഎസ്-സ്റ്റുഡിയോയെ കുറച്ച് റീടച്ച് ചെയ്യും, പക്ഷേ പശ്ചാത്തലത്തിലും കുറച്ച് അർത്ഥമെങ്കിലും ഉള്ള സ്ഥലങ്ങളിൽ മാത്രം.

ഡവലപ്പർമാർ അത് മനസ്സിലാക്കണമെന്ന് ഞാൻ ആഗ്രഹിക്കുന്നു റാൻഡ്ഒന്നും ശരിക്കും വിലയിരുത്തുന്നില്ല. നേർത്ത വായുവിൽ നിന്ന് പുറത്തെടുത്ത ഒരു സിന്തറ്റിക് ടെസ്റ്റാണിത്. പ്രോഗ്രാമുകൾ എഴുതുന്നത് അങ്ങനെയല്ല. അത്തരം പിഴവുകളൊന്നുമില്ല.

വഴി, ഫംഗ്ഷൻ എങ്കിൽ റാൻഡ് 0 അല്ല, 1400 മികച്ചതായിരിക്കില്ല. എല്ലാത്തിനുമുപരി, അത്തരമൊരു പോയിന്റർ അവഗണിക്കാൻ കഴിയില്ല. അതിനാൽ ഒരു നൾ പോയിന്റർ ഒഴിവാക്കുന്നത് തികച്ചും തെറ്റായ കോഡിന്റെ വിചിത്രമായ ചില പ്രത്യേക കേസാണ്, അത് ലളിതമായി നിർമ്മിച്ചതും യഥാർത്ഥ പ്രോഗ്രാമുകളിൽ സംഭവിക്കാത്തതുമാണ്.

യഥാർത്ഥ പ്രോഗ്രാമർ കുഴപ്പങ്ങൾ എനിക്കറിയാം. ഉദാഹരണത്തിന്, V501 ഡയഗ്‌നോസ്റ്റിക് ഉപയോഗിച്ച് നമ്മൾ തിരിച്ചറിയുന്ന അക്ഷരത്തെറ്റുകളാണ് ഇവ. രസകരമെന്നു പറയട്ടെ, "if (a.x == a.x)" പോലുള്ള ഒരു അക്ഷരത്തെറ്റ് അനലൈസറിന് കണ്ടെത്താനാകുമോ എന്ന് പരിശോധിച്ച ഐടിസി-ബെഞ്ച്മാർക്കുകളിൽ ഒരു പരിശോധന പോലും ഞാൻ ശ്രദ്ധിച്ചില്ല. ഒരു ടെസ്റ്റ് പോലുമില്ല!

അതിനാൽ, അക്ഷരത്തെറ്റുകൾ കണ്ടെത്താനുള്ള അനലൈസറുകളുടെ കഴിവിനെ itc-benchmarks അവഗണിക്കുന്നു. ഈ തെറ്റുകൾ എത്ര സാധാരണമാണെന്ന് ഞങ്ങളുടെ ലേഖനങ്ങൾ വായിക്കുന്നവർക്ക് അറിയാം. എന്നാൽ എന്റെ അഭിപ്രായത്തിൽ, യഥാർത്ഥ പ്രോഗ്രാമുകളിൽ കാണാത്ത മണ്ടൻ ടെസ്റ്റ് കേസുകൾ ഇതിൽ അടങ്ങിയിരിക്കുന്നു. ഒരു യഥാർത്ഥ ഗൌരവമുള്ള പ്രോജക്റ്റിൽ നിങ്ങൾക്ക് പരിധിക്കപ്പുറമുള്ള ഒരു അറേയിലേക്ക് നയിക്കുന്ന ഇതുപോലുള്ള കോഡ് കാണാൻ കഴിയുമെന്ന് എനിക്ക് സങ്കൽപ്പിക്കാൻ കഴിയില്ല:

Void overrun_st_014 () ( int buf; int index; index = rand(); buf = 1; /*Tool ഈ ലൈൻ പിശകായി കണ്ടെത്തണം*/ /* പിശക്: ബഫർ ഓവർറൺ */ സിങ്ക് = buf; )
ഒരുപക്ഷേ ഇത് വിദ്യാർത്ഥി ലബോറട്ടറി ജോലികളിൽ മാത്രമേ കണ്ടെത്താൻ കഴിയൂ.

അതേ സമയം, ഗുരുതരമായ ഒരു പ്രോജക്റ്റിൽ ഇതുപോലുള്ള ഒരു അക്ഷരത്തെറ്റ് കാണുന്നത് എളുപ്പമാണെന്ന് എനിക്കറിയാം:

മടങ്ങുക (!strcmp (a->v.val_vms_delta.lbl1, b->v.val_vms_delta.lbl1) && !strcmp (a->v.val_vms_delta.lbl1, b->v.val_vms_delta.lbl1));
ഈ പിശക് പിവിഎസ്-സ്റ്റുഡിയോ അനലൈസർ കണ്ടെത്തി

ഒരു സ്റ്റാറ്റിക് കോഡ് അനലൈസറിന്റെ കഴിവുകൾ വിലയിരുത്താൻ ആരെങ്കിലും കൈകൊണ്ട് തയ്യാറാക്കിയ കോഡ് ഉദാഹരണങ്ങൾ ഉപയോഗിക്കാൻ ശ്രമിക്കുമ്പോൾ എനിക്കത് ഇഷ്ടമല്ല. ഇപ്പോൾ, ഒരു നിർദ്ദിഷ്ട ഉദാഹരണം ഉപയോഗിച്ച്, സിന്തറ്റിക് ടെസ്റ്റുകളോട് എനിക്ക് നിഷേധാത്മക മനോഭാവം ഉള്ളത് എന്തുകൊണ്ടാണെന്ന് ഞാൻ തെളിയിക്കും.

അധികം താമസിയാതെ, ബിൽ ടോർപെ തന്റെ ബ്ലോഗായ “Even Mo “Static”-ൽ ഒരു കുറിപ്പ് എഴുതി, അവിടെ അദ്ദേഹം തന്റെ അഭിപ്രായത്തിൽ, itc-benchmarks പ്രോജക്റ്റ് വിശകലനം ചെയ്യുമ്പോൾ Cppcheck, PVS-Studio ടൂളുകൾ എങ്ങനെ പ്രവർത്തിച്ചുവെന്ന് പറഞ്ഞു. ടൊയോട്ട ഐടിസിയിൽ നിന്നുള്ള സ്റ്റാറ്റിക് വിശകലന മാനദണ്ഡങ്ങൾ.

ലേഖനം വായിച്ചതിനുശേഷം എനിക്ക് അത് ഇഷ്ടപ്പെട്ടില്ല, Cppcheck, PVS-Studio അനലൈസറുകൾ അവയുടെ കഴിവുകളിൽ ഏകദേശം തുല്യമാണെന്ന് തോന്നുന്നു. ഒരു അനലൈസർ ഒരു മേഖലയിലും മറ്റൊന്ന് മറ്റൊന്നിലും മികച്ച പ്രകടനം കാഴ്ചവയ്ക്കുന്നു, എന്നാൽ പൊതുവായി അവരുടെ ഡയഗ്നോസ്റ്റിക് കഴിവുകൾ സമാനമാണ് എന്ന് ലേഖനത്തിൽ നിന്ന് ഇത് പിന്തുടരുന്നു.

ഞാൻ അങ്ങനെ കരുതുന്നില്ല. ഞങ്ങളുടെ PVS-Studio അനലൈസർ Cppcheck നേക്കാൾ പലമടങ്ങ് ശക്തമാണെന്നാണ് എന്റെ അഭിപ്രായം. പൊതുവേ, ഇത് ഒരു "അഭിപ്രായം" അല്ല, എനിക്കറിയാം!

എന്നിരുന്നാലും, PVS-Studio Cppcheck-നേക്കാൾ 10 മടങ്ങ് മികച്ചതാണെന്ന് പുറത്ത് നിന്ന് വ്യക്തമല്ലാത്തതിനാൽ, കാരണം മനസ്സിലാക്കാൻ ശ്രമിക്കണം. ഇതേ ഐടിസി-ബെഞ്ച്മാർക്കുകൾ നോക്കാനും ഈ ടെസ്റ്റ് ബേസിൽ PVS-സ്റ്റുഡിയോ മികച്ച പ്രകടനം നടത്താത്തത് എന്തുകൊണ്ടാണെന്ന് കണ്ടെത്താനും ഞാൻ തീരുമാനിച്ചു.

ഞാൻ അതിൽ കൂടുതൽ നോക്കുന്തോറും എനിക്ക് കൂടുതൽ പ്രകോപിതനായി. ഒരു ഉദാഹരണം എന്നെ പൂർണ്ണമായും സമനില തെറ്റിച്ചു, അതിനെക്കുറിച്ച് ഞാൻ നിങ്ങളോട് കുറച്ചുകൂടി താഴെ പറയും. എന്റെ നിഗമനങ്ങൾ ഇതാണ്: ബിൽ ടോർപ്പിയെക്കുറിച്ച് എനിക്ക് പരാതികളൊന്നുമില്ല. അദ്ദേഹം നല്ല, സത്യസന്ധമായ ഒരു ലേഖനം എഴുതി. നന്ദി ബിൽ. എന്നാൽ ടൊയോട്ട ഐടിസിയെക്കുറിച്ച് എനിക്ക് പരാതിയുണ്ട്. എന്റെ വ്യക്തിപരമായ അഭിപ്രായം: അവരുടെ പരീക്ഷണ അടിസ്ഥാനം മോശമാണ്. ഇത് തീർച്ചയായും ഒരു വലിയ പ്രസ്താവനയാണ്, എന്നാൽ സ്റ്റാറ്റിക് കോഡ് അനലൈസറുകളെക്കുറിച്ചും അവ എങ്ങനെ വിലയിരുത്താമെന്നും സംസാരിക്കാൻ എനിക്ക് മതിയായ യോഗ്യതകളും അനുഭവപരിചയവും ഉണ്ടെന്ന് ഞാൻ വിശ്വസിക്കുന്നു. എന്റെ അഭിപ്രായത്തിൽ, ഒരു പ്രത്യേക അനലൈസറിന്റെ കഴിവുകൾ വേണ്ടത്ര വിലയിരുത്താൻ itc-benchmarks ഉപയോഗിക്കാനാവില്ല.

എന്നെ പൂർണ്ണമായും സമനില തെറ്റിച്ച യഥാർത്ഥ പരീക്ഷണം ഇതാ.

അപ്പോൾ എന്താണ് സംഭവിക്കുന്നത്, ഈ ഉദാഹരണത്തിലെ Cppcheck നേക്കാൾ PVS-Studio ദുർബലമാണോ? ഇല്ല, അവൻ കൂടുതൽ ശക്തനാണ്!

PVS-Studio അനലൈസർ ഈ കോഡ് മനഃപൂർവ്വം എഴുതിയതാണെന്നും ഇവിടെ ഒരു പിശകും ഇല്ലെന്നും മനസ്സിലാക്കുന്നു.

സമാനമായ കോഡ് എഴുതുമ്പോൾ സാഹചര്യങ്ങളുണ്ട് പ്രത്യേകമായിഒരു നൾ പോയിന്റർ ഒഴിവാക്കുമ്പോൾ ഒരു അപവാദം എറിയാൻ കാരണമാകുന്നു. ഇത് ടെസ്റ്റുകളിലോ കോഡിന്റെ പ്രത്യേക മേഖലകളിലോ കണ്ടെത്താനാകും. സമാനമായ കോഡ് നമ്മൾ പലതവണ കണ്ടിട്ടുണ്ട്. ഇവിടെ, ഉദാഹരണത്തിന്, ഒരു യഥാർത്ഥ പ്രോജക്റ്റിൽ ഇത് എങ്ങനെയായിരിക്കാം:

അസാധുവായ GpuChildThread::OnCrash() ( LOG(INFO)<< "GPU: Simulating GPU crash"; // Good bye, cruel world. volatile int* it_s_the_end_of_the_world_as_we_know_it = NULL; *it_s_the_end_of_the_world_as_we_know_it = 0xdead; }
അതിനാൽ, PVS-Studio അനലൈസറിൽ, V522 ഡയഗ്നോസ്റ്റിക്സിൽ നിരവധി ഒഴിവാക്കലുകൾ നടപ്പിലാക്കിയിട്ടുണ്ട്, അങ്ങനെ അത്തരം കോഡിൽ ആണയിടരുത്. അനലൈസർ അത് കാണുന്നു null_pointer_001ഒരു യഥാർത്ഥ പ്രവർത്തനമല്ല. യഥാർത്ഥ കോഡിൽ, ഒരു പോയിന്ററിലേക്ക് ഒരു പൂജ്യം എഴുതുകയും ഉടനടി ഡിറഫറൻസ് ചെയ്യുകയും ചെയ്യുമ്പോൾ ഫംഗ്ഷനുകളിൽ പിശകുകളൊന്നുമില്ല. ഫംഗ്‌ഷന്റെ പേര് അനലൈസറോട് “നൾ പോയിന്റർ” ഒരു കാരണത്താൽ ഉണ്ടെന്ന് പറയുന്നു.

അത്തരം സന്ദർഭങ്ങളിൽ, A6 ഒഴിവാക്കൽ ഡയഗ്നോസ്റ്റിക് V522-ൽ നടപ്പിലാക്കുന്നു. സിന്തറ്റിക് പ്രവർത്തനവും ഇതിന് കീഴിലാണ് null_pointer_001. A6 ഒഴിവാക്കൽ എത്ര അപകടകരമാണ്:

ഒരു വേരിയബിളിന്റെ dereference ഒരു ഫംഗ്ഷനിലാണ്, അതിന്റെ പേരിൽ പദങ്ങളിലൊന്ന് അടങ്ങിയിരിക്കുന്നു:

  • പിശക്
  • സ്ഥിരസ്ഥിതി
  • തകര്ച്ച
  • ശൂന്യം
  • പരീക്ഷ
  • ലംഘനം
  • എറിയുക
  • ഒഴിവാക്കൽ
ഈ സാഹചര്യത്തിൽ, മുകളിലെ വരിയിൽ വേരിയബിളിന് 0 നൽകിയിരിക്കുന്നു.

സിന്തറ്റിക് ടെസ്റ്റ് ഈ അപവാദം പൂർണ്ണമായും പാലിച്ചു. ആദ്യം, ഫംഗ്ഷൻ നാമത്തിൽ "null" എന്ന വാക്ക് ഉണ്ട്. രണ്ടാമതായി, ഒരു വേരിയബിളിലേക്ക് പൂജ്യം അസൈൻമെന്റ് ചെയ്യുന്നത് മുമ്പത്തെ വരിയിൽ തന്നെ സംഭവിക്കുന്നു. ഒഴിവാക്കൽ അസാധുവായ കോഡ് കണ്ടെത്തി. കോഡ് ശരിക്കും യഥാർത്ഥമല്ല, ഇതൊരു സിന്തറ്റിക് ടെസ്റ്റാണ്.

സിന്തറ്റിക് ടെസ്റ്റുകൾ എനിക്ക് ഇഷ്ടപ്പെടാത്തത് ഇതുപോലുള്ള സൂക്ഷ്മതകൾ മൂലമാണ്!

itc-benchmarks സംബന്ധിച്ച് എനിക്ക് മറ്റ് പരാതികളുണ്ട്. ഉദാഹരണത്തിന്, ഒരേ ഫയലിലുള്ള എല്ലാം, നമുക്ക് ഈ ടെസ്റ്റ് കാണാൻ കഴിയും:

അസാധുവായ null_pointer_006 () ( int *p; p = (int *)(intptr_t)rand(); *p = 1; /* ടൂൾ ഈ ലൈൻ പിശകായി കണ്ടെത്തണം*/ /*പിശക്: NULL പോയിന്റർ ഡെററൻസ്*/ )
ഫംഗ്ഷൻ റാൻഡ് 0 തിരികെ നൽകാം, അത് NULL ആയി മാറുന്നു. PVS-Studio അനലൈസറിന് ഇതുവരെ എന്ത് തിരികെ നൽകാമെന്ന് അറിയില്ല റാൻഡ്അതിനാൽ ഈ കോഡിൽ സംശയാസ്പദമായ ഒന്നും കാണുന്നില്ല.

ഒരു ഫംഗ്‌ഷൻ എന്താണെന്ന് നന്നായി മനസ്സിലാക്കാൻ അനലൈസറിനെ പഠിപ്പിക്കാൻ ഞാൻ എന്റെ സഹപ്രവർത്തകരോട് ആവശ്യപ്പെട്ടു റാൻഡ്. പോകാൻ ഒരിടവുമില്ല, നിങ്ങൾ ഒരു ഫയൽ ഉപയോഗിച്ച് അനലൈസർ മൂർച്ച കൂട്ടേണ്ടതുണ്ട്, അതുവഴി സംശയാസ്പദമായ ടെസ്റ്റ് ബേസിൽ അത് മികച്ച പ്രകടനം കാഴ്ചവയ്ക്കും. അനലൈസറുകൾ വിലയിരുത്തുന്നതിന് സമാനമായ ടെസ്റ്റുകൾ ഉപയോഗിക്കുന്നതിനാൽ ഇത് ആവശ്യമായ അളവാണ്.

പക്ഷേ പേടിക്കേണ്ട. ഞങ്ങൾ യഥാർത്ഥ നല്ല ഡയഗ്നോസ്റ്റിക്സിൽ പ്രവർത്തിക്കുന്നത് തുടരുമെന്നും, അനലൈസർ ടെസ്റ്റുകളിലേക്ക് ക്രമീകരിക്കരുതെന്നും ഞാൻ പ്രഖ്യാപിക്കുന്നു. ഒരുപക്ഷേ, ഐടിസി-ബഞ്ച്മാർക്കുകൾക്കായി ഞങ്ങൾ പിവിഎസ്-സ്റ്റുഡിയോയെ കുറച്ച് റീടച്ച് ചെയ്യും, പക്ഷേ പശ്ചാത്തലത്തിലും കുറച്ച് അർത്ഥമെങ്കിലും ഉള്ള സ്ഥലങ്ങളിൽ മാത്രം.

ഡവലപ്പർമാർ അത് മനസ്സിലാക്കണമെന്ന് ഞാൻ ആഗ്രഹിക്കുന്നു റാൻഡ്ഒന്നും ശരിക്കും വിലയിരുത്തുന്നില്ല. നേർത്ത വായുവിൽ നിന്ന് പുറത്തെടുത്ത ഒരു സിന്തറ്റിക് ടെസ്റ്റാണിത്. പ്രോഗ്രാമുകൾ എഴുതുന്നത് അങ്ങനെയല്ല. അത്തരം പിഴവുകളൊന്നുമില്ല.

വഴി, ഫംഗ്ഷൻ എങ്കിൽ റാൻഡ് 0 അല്ല, 1400 മികച്ചതായിരിക്കില്ല. എല്ലാത്തിനുമുപരി, അത്തരമൊരു പോയിന്റർ അവഗണിക്കാൻ കഴിയില്ല. അതിനാൽ ഒരു നൾ പോയിന്റർ ഒഴിവാക്കുന്നത് തികച്ചും തെറ്റായ കോഡിന്റെ വിചിത്രമായ ചില പ്രത്യേക കേസാണ്, അത് ലളിതമായി നിർമ്മിച്ചതും യഥാർത്ഥ പ്രോഗ്രാമുകളിൽ സംഭവിക്കാത്തതുമാണ്.

യഥാർത്ഥ പ്രോഗ്രാമർ കുഴപ്പങ്ങൾ എനിക്കറിയാം. ഉദാഹരണത്തിന്, V501 ഡയഗ്‌നോസ്റ്റിക് ഉപയോഗിച്ച് നമ്മൾ തിരിച്ചറിയുന്ന അക്ഷരത്തെറ്റുകളാണ് ഇവ. രസകരമെന്നു പറയട്ടെ, "if (a.x == a.x)" പോലുള്ള ഒരു അക്ഷരത്തെറ്റ് അനലൈസറിന് കണ്ടെത്താനാകുമോ എന്ന് പരിശോധിച്ച ഐടിസി-ബെഞ്ച്മാർക്കുകളിൽ ഒരു പരിശോധന പോലും ഞാൻ ശ്രദ്ധിച്ചില്ല. ഒരു ടെസ്റ്റ് പോലുമില്ല!

അതിനാൽ, അക്ഷരത്തെറ്റുകൾ കണ്ടെത്താനുള്ള അനലൈസറുകളുടെ കഴിവിനെ itc-benchmarks അവഗണിക്കുന്നു. ഈ തെറ്റുകൾ എത്ര സാധാരണമാണെന്ന് ഞങ്ങളുടെ ലേഖനങ്ങൾ വായിക്കുന്നവർക്ക് അറിയാം. എന്നാൽ എന്റെ അഭിപ്രായത്തിൽ, യഥാർത്ഥ പ്രോഗ്രാമുകളിൽ കാണാത്ത മണ്ടൻ ടെസ്റ്റ് കേസുകൾ ഇതിൽ അടങ്ങിയിരിക്കുന്നു. ഒരു യഥാർത്ഥ ഗൌരവമുള്ള പ്രോജക്റ്റിൽ നിങ്ങൾക്ക് പരിധിക്കപ്പുറമുള്ള ഒരു അറേയിലേക്ക് നയിക്കുന്ന ഇതുപോലുള്ള കോഡ് കാണാൻ കഴിയുമെന്ന് എനിക്ക് സങ്കൽപ്പിക്കാൻ കഴിയില്ല:

Void overrun_st_014 () ( int buf; int index; index = rand(); buf = 1; /*Tool ഈ ലൈൻ പിശകായി കണ്ടെത്തണം*/ /* പിശക്: ബഫർ ഓവർറൺ */ സിങ്ക് = buf; )
ഒരുപക്ഷേ ഇത് വിദ്യാർത്ഥി ലബോറട്ടറി ജോലികളിൽ മാത്രമേ കണ്ടെത്താൻ കഴിയൂ.

അതേ സമയം, ഗുരുതരമായ ഒരു പ്രോജക്റ്റിൽ ഇതുപോലുള്ള ഒരു അക്ഷരത്തെറ്റ് കാണുന്നത് എളുപ്പമാണെന്ന് എനിക്കറിയാം:

മടങ്ങുക (!strcmp (a->v.val_vms_delta.lbl1, b->v.val_vms_delta.lbl1) && !strcmp (a->v.val_vms_delta.lbl1, b->v.val_vms_delta.lbl1));
ഈ പിശക് പിവിഎസ്-സ്റ്റുഡിയോ അനലൈസർ കണ്ടെത്തി

ഞാൻ ഒരുപക്ഷേ ചിലതിനെ കുറിച്ച് കേട്ടിട്ടുണ്ടാകും " AnTuTu റേറ്റിംഗ്" മറ്റൊരു റെക്കോർഡ് കൂടി എത്തിയതായി വാർത്ത ഈ റേറ്റിംഗ്അടുത്തിടെ പുറത്തിറക്കിയ ഒരു പുതിയ ഉൽപ്പന്നത്തെ പരാജയപ്പെടുത്തി - അവ പലപ്പോഴും പ്രസിദ്ധീകരിക്കപ്പെടുന്നു. ഗെയിമിംഗ്, സോഫ്‌റ്റ്‌വെയർ ടെസ്റ്റുകൾ എന്നിവയ്‌ക്ക് പുറമേ, ഉപകരണത്തിന്റെ പ്രകടനം നിർണ്ണയിക്കാൻ മിക്കവാറും എല്ലാ അവലോകനങ്ങളും ഒരേ AnTuTu ഉപയോഗിക്കുന്നു.

നിർഭാഗ്യവശാൽ, എല്ലാ ഉപയോക്താക്കൾക്കും AnTuTu റേറ്റിംഗ് എന്താണെന്നും അത് എന്തുകൊണ്ട് ആവശ്യമാണെന്നും അതിന്റെ പട്ടികകളിലെ ഡാറ്റ എന്താണ് അർത്ഥമാക്കുന്നത് എന്നും അറിയില്ല. അതേസമയം, ഈ വിവരം വളരെ ഉപകാരപ്രദവും നിങ്ങളെ സഹായിക്കും യഥാർത്ഥ സഹായംഒരു പുതിയ ഉപകരണം തിരഞ്ഞെടുക്കുമ്പോൾ. AnTuTu റേറ്റിംഗ് എന്താണ്, അത് എങ്ങനെ ഉപയോഗിക്കണം, ടെസ്റ്റ് ഫലങ്ങൾ എന്താണ് പറയുന്നത് - അറിയുക-എങ്ങനെ വിദഗ്ധർ നിങ്ങളോട് പറയും, നമുക്ക് പോകാം!

ആദ്യം, "സിന്തറ്റിക് ടെസ്റ്റുകൾ" എന്താണെന്നും അവ എന്തിനുവേണ്ടിയാണെന്നും നോക്കാം. സമാനമായ ആപ്ലിക്കേഷനുകൾപ്രതിനിധീകരിക്കുന്നു ടെസ്റ്റിംഗ് പ്രോഗ്രാമുകൾ. നിങ്ങൾക്ക് അവ പൂർണ്ണമായും സൗജന്യമായി ഇവിടെ നിന്ന് ഡൗൺലോഡ് ചെയ്യാം ബ്രാൻഡഡ് സ്റ്റോറുകൾഏറ്റവും ജനപ്രിയമായ മൊബൈൽ ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾക്കുള്ള ആപ്ലിക്കേഷനുകൾ - Android, iOS.

പരിശോധനയ്ക്കിടെ, "സിന്തറ്റിക്സ്" നൽകുന്നു പരമാവധി ലോഡ്ഉപകരണത്തിന്റെ ഹാർഡ്‌വെയറിൽ, ഉപകരണത്തിന്റെ ഏറ്റവും കഠിനമായ പ്രവർത്തന സാഹചര്യങ്ങൾ അനുകരിക്കുന്നു. ഒരേസമയം ഗ്രാഫിക്കലായി നിരവധി ആപ്ലിക്കേഷനുകൾ പ്രവർത്തിപ്പിക്കുമ്പോൾ പോലും സമാനമായ ലോഡ് വളരെ അപൂർവമായി മാത്രമേ നേടാനാകൂ വെല്ലുവിളി നിറഞ്ഞ ഗെയിമുകൾ. അതിനാൽ, അത്തരം പരിശോധനയ്ക്കിടെ, ഉപകരണം അതിന്റെ കഴിവുകളുടെ പരിധിയിൽ പ്രവർത്തിക്കുകയും പ്രകടനത്തിന്റെ യഥാർത്ഥ നില കാണിക്കുകയും ചെയ്യുന്നു.

ടെസ്റ്റ് ഫലങ്ങൾ പോയിന്റുകളിൽ പ്രദർശിപ്പിക്കും; കൂടുതൽ പോയിന്റുകൾ, കൂടുതൽ മെച്ചപ്പെട്ട പ്രകടനംനിർദ്ദിഷ്ട ഉപകരണം, അതനുസരിച്ച്, അതിന്റെ സ്ഥാനം ഉയർന്നതാണ് മൊത്തത്തിലുള്ള റേറ്റിംഗ്ഉപകരണങ്ങൾ.

പോയിന്റുകൾ മികച്ചതാണ്, എന്നാൽ ഒരു ലോജിക്കൽ ചോദ്യം ഉയർന്നുവരുന്നു: ഒരു ഉപകരണത്തിന്റെ ഏകദേശ പ്രകടനം അവയുടെ സംഖ്യയെ അടിസ്ഥാനമാക്കി നിങ്ങൾക്ക് എങ്ങനെ നിർണ്ണയിക്കാനാകും?

വാസ്തവത്തിൽ, എല്ലാം വളരെ ലളിതമാണ് - നോക്കൂ മുകളിലെ വരികൾറേറ്റിംഗ്. മുൻനിര ഉപകരണങ്ങൾ, പ്രകടനത്തിലെ തർക്കമില്ലാത്ത നേതാക്കൾ, അവിടെ അവരുടെ സ്ഥാനങ്ങളിൽ ഉറച്ചുനിൽക്കുന്നു. അതെ, റേറ്റിംഗ് പതിവായി അപ്‌ഡേറ്റ് ചെയ്യുന്നു, ഫലങ്ങൾ മെച്ചപ്പെടുന്നു, എന്നാൽ ഇത് സൂചിപ്പിച്ച നമ്പറുകളിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നതിൽ നിന്ന് നിങ്ങളെ തടയില്ല.

സ്വാഭാവികമായും, ഒരു ഉപകരണത്തിന്റെ മികച്ച പ്രകടനം, അതിന്റെ വില കൂടുതലാണ്; മുൻനിര പരിഹാരങ്ങൾ റേറ്റിംഗിന്റെ TOP 10-ൽ സ്ഥാനം പിടിക്കുന്നത് വെറുതെയല്ല. എന്നാൽ ബജറ്റ് ഉൾപ്പെടെയുള്ള മറ്റ് വിഭാഗങ്ങളിലുള്ള ഉപകരണങ്ങളുണ്ട്, അത് ഏത് ജോലിക്കും ഒപ്റ്റിമൽ പ്രകടനം നൽകുന്നു.

പരമ്പരാഗതമായി, ചുവടെയുള്ള പട്ടികയിൽ കാണിച്ചിരിക്കുന്ന AnTuTu സ്‌കോർ ശ്രേണികളിൽ പ്രകടിപ്പിക്കുന്ന ടെസ്റ്റ് ഫലങ്ങളെ അടിസ്ഥാനമാക്കി നമുക്ക് നിരവധി വിഭാഗങ്ങളെ വേർതിരിച്ചറിയാൻ കഴിയും.

AnTuTu സ്കോറുകളുടെയും പ്രകടനത്തിന്റെയും സംഗ്രഹ പട്ടിക

സംഗ്രഹിക്കുന്നു

AnTuTu ഉപകരണങ്ങളുടെ സിന്തറ്റിക് ടെസ്റ്റും റേറ്റിംഗും ലളിതവും വളരെ ലളിതവുമാണ് സൗകര്യപ്രദമായ ഉപകരണങ്ങൾ, ഇത് നിർണ്ണയിക്കാൻ ഞങ്ങളെ അനുവദിക്കുന്നു യഥാർത്ഥ പ്രകടനംഅവസരങ്ങളും നിർദ്ദിഷ്ട ഉപകരണം. ഒരു പുതിയ സ്മാർട്ട്ഫോൺ അല്ലെങ്കിൽ ടാബ്ലെറ്റ് തിരഞ്ഞെടുക്കുന്ന പ്രക്രിയയിൽ ഈ ഡാറ്റ വളരെ ഉപയോഗപ്രദമാകും.

നിങ്ങൾ രണ്ട് ഓപ്ഷനുകൾക്കിടയിൽ തിരഞ്ഞെടുക്കുന്നുവെന്ന് പറയാം - ഒരു സ്മാർട്ട്ഫോൺ കൂടുതൽ ചെലവേറിയതാണ്, മറ്റൊന്ന് വിലകുറഞ്ഞതാണ്, പക്ഷേ പ്രകടനം നിർദ്ദിഷ്ട മാതൃകനിങ്ങൾക്കായി ആദ്യം വരുന്നു. IN ഈ സാഹചര്യത്തിൽഏത് ഉപകരണമാണ് കൂടുതൽ ഉള്ളതെന്ന് മനസിലാക്കാൻ റേറ്റിംഗ് നോക്കുക ഉയർന്ന പ്രകടനംനിങ്ങളുടെ ആവശ്യങ്ങൾ നിറവേറ്റുകയും ചെയ്യുന്നു.

AnTuTu കൂടാതെ, ഗാഡ്‌ജെറ്റുകളുടെ കഴിവുകൾ പരിശോധിക്കാൻ മറ്റ് സിന്തറ്റിക് ടെസ്റ്റുകളും ഉണ്ട്. എന്നാൽ ഏറ്റവും ജനപ്രിയമായ ഓപ്ഷൻ AnTuTu ആണ് സമാനമായ പ്രോഗ്രാമുകൾ, അതിന്റെ ലാളിത്യം, വൈവിധ്യം, പ്രവേശനക്ഷമത എന്നിവ കാരണം വലിയ ഡാറ്റാബേസ്ഉപയോക്തൃ ഡാറ്റ, അതിന്റെ അടിസ്ഥാനത്തിലാണ് റേറ്റിംഗ് പട്ടികകൾ പതിവായി ക്രമീകരിക്കുന്നത്. അതിനാൽ, നിങ്ങൾക്ക് ഉപകരണത്തിന്റെ യഥാർത്ഥ പ്രകടനം അറിയണമെങ്കിൽ - സിന്തറ്റിക് AnTuTu ടെസ്റ്റ്ആയിത്തീരും മികച്ച തിരഞ്ഞെടുപ്പ്ഉപകരണത്തിന്റെ കഴിവുകൾ പരിശോധിക്കാൻ.

ഇഷ്ടപ്പെട്ടോ?
നിന്റെ സുഹൃത്തുക്കളോട് പറയുക!