Mapagkukunan ng kompyuter U SM. Dalawang mid-range na video card sa halip na isang top-end na isa. ⇡ Pagganap, mga synthetic na pagsubok

Salamat sa pagsisimula ng mga benta ng processor AMD Ryzen 5 bago ang iskedyul (Abril 11), ang mga unang pagsusuri ng mga processor na ito ay lumalabas na. Napag-usapan na natin nang maikli ang tungkol sa pagganap ng 4-core Ryzen 5 1400 processor sa mga synthetic na pagsubok at modernong laro. Ngayon ang aming mga kasamahang Espanyol mula sa El Chapuzas Informatico ay nag-publish ng isang pagsusuri ng 6-core processor ng AMD Ryzen 5 1600.

Ang processor na ito ay may anim mga pisikal na core bawat isa ay may dalawang computational thread, na sa huli ay nagbibigay ng labindalawang thread. Base frequency Ang bilis ng processor ay 3.2 GHz, at maaari itong dynamic na tumaas sa 3.6 GHz. Ang kabuuang third-level na cache ng AMD Ryzen 5 1600 ay 16 MB (8+8 MB), at ang bawat core ay may 512 kB ng second-level na cache at 64 at 32 kB ng first-level na pagtuturo at data cache, ayon sa pagkakabanggit. Tulad ng iba Proseso ng Ryzen, ang chip na ito ay nakalagay sa isang Socket AM4 package at may TDP na 64 W. Ang inirerekomendang presyo ng bagong produkto para sa US market ay $219.

Configuration test bench, na ginagamit ng aming mga kasamahan, ay kinakatawan ng mga sumusunod na bahagi:

  • Motherboard: MSI X370 XPower Gaming Titanium;
  • RAM: G.Skill TridentZ DDR4 3600 MHz, tumatakbo sa 2400 MHz;
  • Video card: MSI GeForce GTX 1070 Gaming Z;
  • Power Supply: Manahimik! Dark Power Pro11 1200 V;
  • Solid state drive: Kingston SSDNow KC400 128 GB at Corsair LX 512 GB;
  • Sistema ng pagpapalamig: Wraith Spire;
  • Operating system: Windows 10 64 bit.

Ang pagganap ng isang solong core ng Ryzen 5 1600 processor ay inaasahang hindi gaanong naiiba sa pagganap ng isang solong core ng Ryzen 7 1700X, dahil ang mga ito ay binuo sa parehong mga silicon na kristal, tanging ang anim na core na processor ang may dalawang core na hindi pinagana. .

Sa multi-threaded Mga pagsubok sa CPU-Z at wPrime 2.1 (32M), ang bagong produkto ay nagpakita ng lubos na inaasahang resulta, na nagpapakita ng napakahusay na antas ng pagganap.

Sa Cinebench 15, ang bagong produkto ay nauna hindi lamang sa overclocked sa 4.9 GHz at ang idinagdag pa mabilis na memorya(3600 MHz) mas mahal na quad-core Intel Core i7-7700K, kundi pati na rin ang anim na core na Intel Core i7-5930K. Ngunit sa pag-encode ng video ay naging mas mabilis ang huli.

Ang Ryzen 5 1600 processor ay hindi gumagana sa memorya sa pinakamahusay na posibleng paraan, bagama't bahagyang mas mahusay kumpara sa Ryzen 7 1700X.

Sa ilang mga synthetic na pagsubok, nagpapakita ang bagong produkto ng AMD pinakamahusay na mga resulta, kumpara sa Ryzen 7 1700X, at sa ilang mga kaso ito ay bahagyang mas mababa dito. Sa karamihan mga sintetikong pagsubok Intel processor Ang Core i7-6700K ay lumalabas na mas mabilis kaysa sa parehong mga kinatawan ng AMD.

Tungkol sa pagganap ng paglalaro, kung gayon ito ay lubos na kahanga-hanga. Sa karamihan ng mga pagsubok sa Buong resolusyon HD (1920 x 1080 pixels) ang bagong produkto ay bahagyang nasa likod ng higit pa mahal na Intel Core i7-6700K, at sa ilang mga kaso kahit na nauuna dito. Ito ay kagiliw-giliw na tandaan na sa mga laro ng Doom (na may gamit ang OpenGL) at Rise of Tomb Raider (gamit ang DirectX 11), mas nauuna ang Ryzen 5 1600 processor kaysa sa Ryzen 7 1700X.

Sa 4K UHD na resolution (3840 x 2160 pixels) ang sitwasyon ay humigit-kumulang pareho, at sa kaso ng karamihan sa mga laro, ang lahat ay nakasalalay sa pagganap ng video card.

Co karaniwang sistema paglamig, ang dalas ng processor ay itinaas sa 3.9 GHz, habang ang core boltahe ay 1.36 V. Magiging kawili-wiling makita kung magkano ang posibleng i-overclock ang bagong produkto gamit ang pinalamig ng likido, at kung anong mga frequency ang sasakupin nito sa ilalim ng matinding overclocking.

Ang temperatura ng AMD Ryzen 5 1600 processor sa idle ay 39 degrees Celsius, at sa ilalim ng load ito ay 62 – 65 degrees Celsius. Ang pagkonsumo ng system batay sa bagong produkto sa mga laro ay 245 W, na tinatayang katumbas ng pagkonsumo ng system sa Batay sa Intel Core i7-6700K, na katumbas ng 250 W.

Mga sintetikong pagsubok

SA orihinal na pagsusuri lahat ng pagsubok ay napupunta iba't ibang pahina, pagsasamahin ko ang mga ito para sa kaginhawahan, ngunit hahatiin ang mga ito sa mga synthetic at gaming.

Wprime 2.0

Tinutukoy ng isang kilalang utility para sa pagsubok ng mga multi-core processor ang kanilang kapangyarihan sa pamamagitan ng pagsasagawa ng ilang mga kalkulasyon. Ang mas kaunting oras na ginugol sa pagsasagawa ng pagsusulit, mas maganda ang resulta.

Ang pinakamabilis (na hindi nakakagulat dahil sa dalas ng orasan nito) ay naging pangunahing processor ng pagsubok ngayon. Hindi kanais-nais na nakakagulat na ang Core i5 2300 ay halos isang segundo sa likod ng i5 760 (sa parehong dalas). Malamang apektado mas maliit na sukat ikatlong antas ng cache.

Fritz Chess Benchmar

At ito ay isang pagsubok na tumutukoy sa pagganap ng processor sa pamamagitan ng pagproseso ng iba't ibang mga algorithm ng chess. Sa benchmark na ito, mas maraming puntos, mas maganda ang resulta.

Ang "lumang" Core i5 760 ay naabutan ng lahat ng mga kinatawan ng pamilya ng Sandy Bridge.

WinRAR 3.92

Ang archiver na ito ay hindi nangangailangan ng pagpapakilala. Ang pagganap ay matutukoy sa pamamagitan ng bilang ng mga KB/s ng compression ilang mga file. Mas marami, mas mabuti.


Ang larawan ay kapareho ng sa unang pagsubok, ang 2500K ay nangunguna, na sinusundan ng ika-760 na may malaking lag, dalawang hakbang sa likod kung saan ay ang i5 2300.

7-Zip 9.13

Isa pang kilalang archiver, na personal kong inirerekomenda sa marami (mas mahusay itong gumagana kaysa sa RAR at ZIP, gumagana ito nang maayos sa mga multi-core na processor at x64 OS, at ganap na libre) sa takdang panahon. Ang pagganap ay kinakalkula sa parehong paraan tulad ng sa nakaraang pagsubok.


Ang pagsubok ay isinagawa sa compression (unang graph) at decompression (pangalawang) mode ng mga file. Malinaw na nakikita kung sino ang nangunguna at kung magkano.

Adobe Photoshop CS5

Sikat na processing package mga graphic na file. Hindi ko maintindihan kung paano eksaktong nasubok ang mga processor (kung mayroon kang anumang mga ideya, sabihin sa akin), ngunit gayunpaman, tingnan natin ang mga resulta:


Tila, ang resulta ay sa ilang segundo. Ang mas kaunti mas mabuti. "Sandy Bridges" ang nangunguna

POV-Ray 3.7

POV-Ray sikat na programa Sa open source para sa pagsubok ng mga processor sa floating point operations. Ang bilang ng mga puntos sa pagsubok ay ang bilang ng mga nai-render na pixel bawat segundo, mas marami, mas mabuti.


Ang sitwasyon mula sa nakaraang pagsubok ay paulit-ulit. Pakitandaan kung anong bentahe ng i5 2300 kaysa sa i5 760 (paalalahanan ko kayo na dalas ng orasan, pareho ang mga processor)! tiyak, bagong arkitektura nagpapakita ng karakter. O nakakatulong ba ang Turbo mode?

CineBench R11.5

Ang "Cinebench" ay hindi nangangailangan ng pagpapakilala, isang mahusay na pagsubok ng pagganap ng processor (kapwa sa single-thread at multi-thread mode) sa mga kondisyon ng pag-render ng 3D.


Ang larawan ay eksaktong kapareho ng sa nakaraang ilang mga pagsubok. Ang "Bridges" ay nasa unahan, 760 ang nasa likod. At ang bentahe ng mga bagong produkto ay napaka solid.

H.264 Encoder V2

Ang pag-encode ng video ay isang gawain na kadalasang ginagawa ng mga tao makapangyarihang mga processor. Ang mas kaunting oras na kinakailangan upang i-encode ang materyal ng video sa h264, mas mabuti.


Kawawang 760! Sandy Bridge" at huwag mo itong bigyan ng pagkakataong manalo. Gusto ko na ng ganoong processor (hexacor lang, hindi bababa sa), mas mahusay na agad na i-overclock sa 4.5-5 GHz. Kung hindi, sa Atom at Q9550, ang pag-encode ng video ay hindi bilang masaya tulad ng dati

Hindi ko gusto kapag may sumubok na gumamit ng mga halimbawa ng code na ginawa ng kamay upang suriin ang mga kakayahan ng isang static code analyzer. Ngayon sa tiyak na halimbawa Ipapakita ko kung bakit negatibo ako sa mga synthetic na pagsubok.

Hindi nagtagal, sumulat si Bill Torpey ng tala sa kanyang blog na "Even Mo "Static", kung saan sinabi niya kung paano, sa kanyang opinyon, gumanap ang mga tool ng Cppcheck at PVS-Studio kapag sinusuri ang proyekto ng itc-benchmarks static analysis benchmarks mula sa Toyota ITC.

Hindi ko nagustuhan iyon pagkatapos basahin ang artikulo ay tila ang Cppcheck at PVS-Studio analyzers ay humigit-kumulang pantay sa kanilang mga kakayahan. Sinusundan nito mula sa artikulo na ang isang analyzer ay gumaganap nang mas mahusay sa isang lugar, ang isa pa sa isa pa, ngunit sa pangkalahatan ang kanilang mga diagnostic na kakayahan ay magkatulad.

parang hindi naman. Ang aking opinyon ay ang aming PVS-Studio analyzer ay ilang beses na mas malakas kaysa sa Cppcheck. At sa pangkalahatan, hindi ito isang "opinyon", alam ko iyon!

Gayunpaman, dahil hindi halata sa labas na ang PVS-Studio ay 10 beses na mas mahusay kaysa sa Cppcheck, dapat nating subukang maunawaan ang dahilan. Nagpasya akong tingnan ang parehong itc-benchmark at alamin kung bakit hindi nagawa ng PVS-Studio ang pinakamahusay sa test base na ito.

Habang pinagmamasdan ko ito, mas lalo akong nakaramdam ng inis. At ang isang halimbawa ay ganap na nagpawala sa akin, at sasabihin ko sa iyo ang tungkol dito nang mas mababa. Ang aking mga konklusyon ay ito: Wala akong mga reklamo tungkol kay Bill Torpey. Sumulat siya ng isang mahusay, tapat na artikulo. Salamat Bill. Ngunit mayroon akong mga reklamo tungkol sa Toyota ITC. Ang aking personal na opinyon: ang kanilang test base ay crap. Ito ay, siyempre, isang malaking pahayag, ngunit naniniwala ako na mayroon akong sapat na mga kwalipikasyon at karanasan upang pag-usapan ang tungkol sa mga static na code analyzer at kung paano suriin ang mga ito. Sa aking palagay, hindi magagamit ang mga itc-benchmark upang masuri nang sapat ang mga kakayahan ng isang partikular na analyzer.

At narito ang aktwal na pagsubok na sa wakas ay nawalan ako ng balanse.

Kaya kung ano ang mangyayari, ang PVS-Studio ay mas mahina kaysa sa Cppcheck sa halimbawang ito? Hindi, mas malakas lang siya!

Naiintindihan ng PVS-Studio analyzer na ang code na ito ay sadyang isinulat at walang error dito.

May mga sitwasyon kung kailan nakasulat ang katulad na code lalo na upang maging sanhi ng pagbubukod kapag itinapon ang isang null pointer. Ito ay matatagpuan sa mga pagsubok o sa mga partikular na lugar ng code. Maraming beses na kaming nakakita ng katulad na code. Narito, halimbawa, ang maaaring hitsura nito sa isang tunay na proyekto:

Void 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; }
Samakatuwid, sa PVS-Studio analyzer, maraming mga pagbubukod ang ipinatupad sa mga diagnostic ng V522, upang hindi sumumpa sa naturang code. Nakikita iyon ng analyzer null_pointer_001 ay hindi isang tunay na function. Sa totoong code, walang mga error sa mga function kapag ang isang zero ay isinulat sa isang pointer at agad na na-dereference. At ang pangalan ng function ay nagsasabi sa analyzer na may dahilan para sa "null pointer".

Para sa mga ganitong kaso, ang exception A6 ay ipinatupad sa diagnostic V522. Ang synthetic function ay nasa ilalim din nito null_pointer_001. Ganito mapanganib ang exception A6:

Ang dereference ng isang variable ay nasa isang function na ang pangalan ay naglalaman ng isa sa mga salita:

  • pagkakamali
  • default
  • bumagsak
  • null
  • pagsubok
  • paglabag
  • itapon
  • pagbubukod
Sa kasong ito, ang variable ay itinalaga ng 0 sa linya sa itaas.

Ang synthetic na pagsubok ay ganap na nakamit ang pagbubukod na ito. Una, ang pangalan ng function ay may salitang "null" sa loob nito. Pangalawa, ang pagtatalaga ng zero sa isang variable ay nangyayari nang eksakto sa nakaraang linya. Natukoy ng exception ang invalid na code. At ang code ay talagang hindi totoo, ito ay isang synthetic na pagsubok.

Ito ay dahil sa mga nuances na tulad nito na hindi ko gusto ang mga sintetikong pagsubok!

Mayroon akong iba pang mga reklamo tungkol sa mga itc-benchmark. Halimbawa, lahat ng bagay sa parehong file, makikita natin ang pagsubok na ito:

Void null_pointer_006 () ( int *p; p = (int *)(intptr_t)rand(); *p = 1; /*Dapat makita ng tool ang linyang ito bilang error*/ /*ERROR:NULL pointer dereference*/ )
Function rand maaaring ibalik ang 0, na pagkatapos ay nagiging NULL. Hindi pa alam ng PVS-Studio analyzer kung ano ang maibabalik nito rand at samakatuwid ay walang nakikitang anumang kahina-hinala sa code na ito.

Hiniling ko sa aking mga kasamahan na turuan ang analyzer upang mas maunawaan kung ano ang isang function rand. Walang mapupuntahan, kailangan mong patalasin ang analyzer gamit ang isang file upang mas mahusay itong gumanap sa pinag-uusapang test base. Ito ay isang kinakailangang panukala, dahil ang mga katulad na hanay ng mga pagsubok ay ginagamit upang suriin ang mga analyzer.

Ngunit huwag matakot. Ipinapahayag ko na patuloy kaming magtatrabaho sa tunay na mahusay na mga diagnostic, at hindi upang ayusin ang analyzer sa mga pagsubok. Marahil ay magre-retouch kami ng PVS-Studio nang kaunti para sa mga itc-benchmark, ngunit sa background at sa mga lugar lamang na may kabuluhan.

Gusto kong maunawaan ng mga developer na ang halimbawa sa rand hindi talaga nagsusuri ng anuman. Isa itong sintetikong pagsubok na hinugot sa manipis na hangin. Hindi iyan kung paano isinulat ang mga programa. Walang ganoong mga pagkakamali.

Sa pamamagitan ng paraan, kung ang function rand babalik hindi 0, ngunit ang 1400 ay hindi magiging mas mahusay. Lahat ng parehong, tulad ng isang pointer ay hindi maaaring dereference. Kaya ang dereferencing sa isang null pointer ay ilang kakaibang espesyal na kaso ng ganap na hindi tamang code na ginawa lamang at hindi nangyayari sa mga tunay na programa.

Alam ko ang tunay na problema ng programming. Halimbawa, ito ay mga typo na nakikita namin ng daan-daan, halimbawa, gamit ang V501 diagnostic. Kapansin-pansin, wala akong napansin na isang pagsubok sa mga itc-benchmark na nagsuri kung ang analyzer ay maaaring makakita ng typo tulad ng "kung (a.x == a.x)". Wala ni isang pagsubok!

Kaya, binabalewala ng mga itc-benchmark ang kakayahan ng mga analyzer na makahanap ng mga typo. At alam ng mga mambabasa ng aming mga artikulo kung gaano karaniwan ang mga pagkakamaling ito. Ngunit naglalaman ito, sa palagay ko, mga stupid test cases na hindi matatagpuan sa mga totoong programa. Hindi ko maisip na sa isang tunay na seryosong proyekto ay makakatagpo ka ng code na tulad nito na humahantong sa isang array out of bounds:

Void overrun_st_014 () ( int buf; int index; index = rand(); buf = 1; /*Dapat makita ng tool ang linyang ito bilang error*/ /*ERROR: buffer overrun */ sink = buf; )
Marahil ito ay matatagpuan lamang sa gawaing laboratoryo ng mag-aaral.

Kasabay nito, alam ko na sa isang seryosong proyekto ay madaling makatagpo ng isang typo tulad ng:

Bumalik (!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));
Ang error na ito ay nakita ng PVS-Studio analyzer

Hindi ko gusto kapag may sumubok na gumamit ng mga halimbawa ng code na ginawa ng kamay upang suriin ang mga kakayahan ng isang static code analyzer. Ngayon, gamit ang isang partikular na halimbawa, ipapakita ko kung bakit mayroon akong negatibong saloobin sa mga synthetic na pagsubok.

Hindi nagtagal, sumulat si Bill Torpey ng tala sa kanyang blog na "Even Mo "Static", kung saan sinabi niya kung paano, sa kanyang opinyon, gumanap ang mga tool ng Cppcheck at PVS-Studio kapag sinusuri ang proyekto ng itc-benchmarks static analysis benchmarks mula sa Toyota ITC.

Hindi ko nagustuhan iyon pagkatapos basahin ang artikulo ay tila ang Cppcheck at PVS-Studio analyzers ay humigit-kumulang pantay sa kanilang mga kakayahan. Sinusundan nito mula sa artikulo na ang isang analyzer ay gumaganap nang mas mahusay sa isang lugar, ang isa pa sa isa pa, ngunit sa pangkalahatan ang kanilang mga diagnostic na kakayahan ay magkatulad.

parang hindi naman. Ang aking opinyon ay ang aming PVS-Studio analyzer ay ilang beses na mas malakas kaysa sa Cppcheck. At sa pangkalahatan, hindi ito isang "opinyon", alam ko iyon!

Gayunpaman, dahil hindi halata sa labas na ang PVS-Studio ay 10 beses na mas mahusay kaysa sa Cppcheck, dapat nating subukang maunawaan ang dahilan. Nagpasya akong tingnan ang parehong itc-benchmark at alamin kung bakit hindi nagawa ng PVS-Studio ang pinakamahusay sa test base na ito.

Habang pinagmamasdan ko ito, mas lalo akong nakaramdam ng inis. At ang isang halimbawa ay ganap na nagpawala sa akin, at sasabihin ko sa iyo ang tungkol dito nang mas mababa. Ang aking mga konklusyon ay ito: Wala akong mga reklamo tungkol kay Bill Torpey. Sumulat siya ng isang mahusay, tapat na artikulo. Salamat Bill. Ngunit mayroon akong mga reklamo tungkol sa Toyota ITC. Ang aking personal na opinyon: ang kanilang test base ay crap. Ito ay, siyempre, isang malaking pahayag, ngunit naniniwala ako na mayroon akong sapat na mga kwalipikasyon at karanasan upang pag-usapan ang tungkol sa mga static na code analyzer at kung paano suriin ang mga ito. Sa aking palagay, hindi magagamit ang mga itc-benchmark upang masuri nang sapat ang mga kakayahan ng isang partikular na analyzer.

At narito ang aktwal na pagsubok na sa wakas ay nawalan ako ng balanse.

Kaya kung ano ang mangyayari, ang PVS-Studio ay mas mahina kaysa sa Cppcheck sa halimbawang ito? Hindi, mas malakas lang siya!

Naiintindihan ng PVS-Studio analyzer na ang code na ito ay sadyang isinulat at walang error dito.

May mga sitwasyon kung kailan nakasulat ang katulad na code lalo na upang maging sanhi ng pagbubukod kapag itinapon ang isang null pointer. Ito ay matatagpuan sa mga pagsubok o sa mga partikular na lugar ng code. Maraming beses na kaming nakakita ng katulad na code. Narito, halimbawa, ang maaaring hitsura nito sa isang tunay na proyekto:

Void 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; }
Samakatuwid, sa PVS-Studio analyzer, maraming mga pagbubukod ang ipinatupad sa mga diagnostic ng V522, upang hindi sumumpa sa naturang code. Nakikita iyon ng analyzer null_pointer_001 ay hindi isang tunay na function. Sa totoong code, walang mga error sa mga function kapag ang isang zero ay isinulat sa isang pointer at agad na na-dereference. At ang pangalan ng function ay nagsasabi sa analyzer na may dahilan para sa "null pointer".

Para sa mga ganitong kaso, ang exception A6 ay ipinatupad sa diagnostic V522. Ang synthetic function ay nasa ilalim din nito null_pointer_001. Ganito mapanganib ang exception A6:

Ang dereference ng isang variable ay nasa isang function na ang pangalan ay naglalaman ng isa sa mga salita:

  • pagkakamali
  • default
  • bumagsak
  • null
  • pagsubok
  • paglabag
  • itapon
  • pagbubukod
Sa kasong ito, ang variable ay itinalaga ng 0 sa linya sa itaas.

Ang synthetic na pagsubok ay ganap na nakamit ang pagbubukod na ito. Una, ang pangalan ng function ay may salitang "null" sa loob nito. Pangalawa, ang pagtatalaga ng zero sa isang variable ay nangyayari nang eksakto sa nakaraang linya. Natukoy ng exception ang invalid na code. At ang code ay talagang hindi totoo, ito ay isang synthetic na pagsubok.

Ito ay dahil sa mga nuances na tulad nito na hindi ko gusto ang mga sintetikong pagsubok!

Mayroon akong iba pang mga reklamo tungkol sa mga itc-benchmark. Halimbawa, lahat ng bagay sa parehong file, makikita natin ang pagsubok na ito:

Void null_pointer_006 () ( int *p; p = (int *)(intptr_t)rand(); *p = 1; /*Dapat makita ng tool ang linyang ito bilang error*/ /*ERROR:NULL pointer dereference*/ )
Function rand maaaring ibalik ang 0, na pagkatapos ay nagiging NULL. Hindi pa alam ng PVS-Studio analyzer kung ano ang maibabalik nito rand at samakatuwid ay walang nakikitang anumang kahina-hinala sa code na ito.

Hiniling ko sa aking mga kasamahan na turuan ang analyzer upang mas maunawaan kung ano ang isang function rand. Walang mapupuntahan, kailangan mong patalasin ang analyzer gamit ang isang file upang mas mahusay itong gumanap sa pinag-uusapang test base. Ito ay isang kinakailangang panukala, dahil ang mga katulad na hanay ng mga pagsubok ay ginagamit upang suriin ang mga analyzer.

Ngunit huwag matakot. Ipinapahayag ko na patuloy kaming magtatrabaho sa tunay na mahusay na mga diagnostic, at hindi upang ayusin ang analyzer sa mga pagsubok. Marahil ay magre-retouch kami ng PVS-Studio nang kaunti para sa mga itc-benchmark, ngunit sa background at sa mga lugar lamang na may kabuluhan.

Gusto kong maunawaan ng mga developer na ang halimbawa sa rand hindi talaga nagsusuri ng anuman. Isa itong sintetikong pagsubok na hinugot sa manipis na hangin. Hindi iyan kung paano isinulat ang mga programa. Walang ganoong mga pagkakamali.

Sa pamamagitan ng paraan, kung ang function rand babalik hindi 0, ngunit ang 1400 ay hindi magiging mas mahusay. Lahat ng parehong, tulad ng isang pointer ay hindi maaaring dereference. Kaya ang dereferencing sa isang null pointer ay ilang kakaibang espesyal na kaso ng ganap na hindi tamang code na ginawa lamang at hindi nangyayari sa mga tunay na programa.

Alam ko ang tunay na problema ng programming. Halimbawa, ito ay mga typo na nakikita namin ng daan-daan, halimbawa, gamit ang V501 diagnostic. Kapansin-pansin, wala akong napansin na isang pagsubok sa mga itc-benchmark na nagsuri kung ang analyzer ay maaaring makakita ng typo tulad ng "kung (a.x == a.x)". Wala ni isang pagsubok!

Kaya, binabalewala ng mga itc-benchmark ang kakayahan ng mga analyzer na makahanap ng mga typo. At alam ng mga mambabasa ng aming mga artikulo kung gaano karaniwan ang mga pagkakamaling ito. Ngunit naglalaman ito, sa palagay ko, mga stupid test cases na hindi matatagpuan sa mga totoong programa. Hindi ko maisip na sa isang tunay na seryosong proyekto ay makakatagpo ka ng code na tulad nito na humahantong sa isang array out of bounds:

Void overrun_st_014 () ( int buf; int index; index = rand(); buf = 1; /*Dapat makita ng tool ang linyang ito bilang error*/ /*ERROR: buffer overrun */ sink = buf; )
Marahil ito ay matatagpuan lamang sa gawaing laboratoryo ng mag-aaral.

Kasabay nito, alam ko na sa isang seryosong proyekto ay madaling makatagpo ng isang typo tulad ng:

Bumalik (!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));
Ang error na ito ay nakita ng PVS-Studio analyzer

Marahil ay narinig ko ang tungkol sa isang tiyak" Rating ng AnTuTu" Balitang may isa pang record ang rating na ito pinalo ng isang kamakailang inilabas na bagong produkto - sila ay nai-publish nang madalas. Halos bawat review ay gumagamit ng parehong AnTuTu upang matukoy ang performance ng device, bilang karagdagan sa mga pagsubok sa paglalaro at software.

Sa kasamaang palad, hindi alam ng lahat ng mga gumagamit kung ano ang rating ng AnTuTu, kung bakit ito kinakailangan at kung ano ang ibig sabihin ng data sa mga talahanayan nito. Samantala, ang impormasyong ito ay lubhang kapaki-pakinabang at makakatulong sa iyo tunay na tulong kapag pumipili ng bagong device. Ano ang rating ng AnTuTu, kung paano ito gamitin at kung ano ang sinasabi ng mga resulta ng pagsubok - KNOW-HOW ang sasabihin sa iyo ng mga eksperto, tara na!

Una, tingnan natin kung ano ang "mga synthetic na pagsubok" at kung ano ang kailangan ng mga ito. Mga katulad na application kumatawan mga programa sa pagsubok. Maaari mong i-download ang mga ito nang walang bayad sa mga tindahang may tatak mga application para sa pinakasikat na mobile operating system – Android at iOS.

Sa panahon ng pagsubok, nagbibigay ang "synthetics". maximum load sa hardware ng device, na ginagaya ang pinakamatinding sitwasyon sa pagpapatakbo ng device. Ang isang katulad na load ay bihirang makamit kahit na nagpapatakbo ng ilang mga application nang sabay-sabay at graphical mapaghamong laro. Samakatuwid, sa panahon ng naturang pagsubok, gumagana ang aparato sa limitasyon ng mga kakayahan nito at ipinapakita ang tunay na antas ng pagganap.

Ang mga resulta ng pagsubok ay ipinapakita sa mga puntos; mas mahusay na pagganap partikular na device at, nang naaayon, mas mataas ang posisyon nito pangkalahatang rating mga device.

Mahusay ang mga puntos, ngunit lumitaw ang isang lohikal na tanong: paano mo matutukoy ang tinatayang pagganap ng isang device batay sa kanilang numero?

Sa katunayan, ang lahat ay napaka-simple - tingnan lamang nangungunang mga linya rating. Ang mga flagship device, ang hindi mapag-aalinlanganang mga pinuno sa pagganap, ay matatag na sumasakop sa kanilang mga posisyon doon. Oo, ang rating ay regular na na-update, ang mga resulta ay nagpapabuti, ngunit hindi ito pumipigil sa iyo na tumuon sa mga ipinahiwatig na numero.

Naturally, mas mahusay ang pagganap ng isang device, mas mataas ang gastos nito; Ngunit may iba pang mga kategorya ng mga device, kabilang ang mga badyet, na nagbibigay ng pinakamainam na pagganap para sa halos anumang gawain.

Karaniwan, maaari naming makilala ang ilang kategorya batay sa mga resulta ng pagsubok, na ipinahayag sa mga hanay ng marka ng AnTuTu, na ipinapakita sa talahanayan sa ibaba.

Talahanayan ng buod ng mga score at performance ng AnTuTu

Summing up

Ang synthetic na pagsubok at rating ng mga AnTuTu device ay simple at napaka maginhawang kasangkapan, na nagpapahintulot sa amin na matukoy tunay na pagganap at mga pagkakataon tiyak na aparato. Ang data na ito ay magiging lubhang kapaki-pakinabang sa proseso ng pagpili ng isang bagong smartphone o tablet.

Sabihin nating pipili ka sa pagitan ng dalawang opsyon - ang isang smartphone ay mas mahal, ang isa ay mas mura, ngunit ang pagganap tiyak na modelo mauuna para sayo. SA sa kasong ito tingnan lang ang rating para maunawaan kung aling device ang may higit pa mataas na pagganap at nakakatugon sa iyong mga pangangailangan.

Bilang karagdagan sa AnTuTu, may iba pang mga synthetic na pagsubok upang suriin ang mga kakayahan ng mga gadget. Ngunit ang AnTuTu ay ang pinakasikat na opsyon mga katulad na programa, dahil sa pagiging simple, versatility, accessibility at malaking database data ng user, batay sa kung aling mga talahanayan ng rating ang regular na inaayos. Samakatuwid, kung kailangan mong malaman ang tunay na pagganap ng aparato - gawa ng tao Pagsusulit sa AnTuTu magiging pinakamahusay na pagpipilian upang suriin ang mga kakayahan ng device.

nagustuhan mo ba?
Sabihin sa iyong mga kaibigan!