Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Zanimljivo
  • Dvije video kartice srednjeg ranga umjesto jedne vrhunske. Kompjuterski resurs U SM

Dvije video kartice srednjeg ranga umjesto jedne vrhunske. Kompjuterski resurs U SM

Prošlo je dosta vremena od izlaska operativnog sistema Microsoft Windows Vista i ažurirani DirectX 10 API uključeni. Postepeno se pojavljuju aplikacije za igre s podrškom za novu verziju Direct3D 10, međutim, iako su to tek neznatno izmijenjene D3D 9 aplikacije, one ne koriste aktivno nove značajke D3D 10 u sebi. I one igre koje su već objavljene iznenađuju polarnim rezultatima na video karticama dva glavna proizvođača čipova, svakako ih je moguće koristiti u ovom obliku za poređenje, naravno, ali vrlo pažljivo...

Obilje pakovanja sintetičkih i testovi igara sa podrškom za Direct3D 10 se također ne primjećuje, isti Futuremark nije izdao sljedeći 3DMark. Ali stranica ima svoj paket sintetički testovi, a već duže vrijeme planiramo ažurirati RightMark3D kako bismo mogli ocijeniti vrhunske performanse D3D10 akceleratora u različitim zadacima. Konačna verzija RightMark3D 2.0, dizajnirana za Direct3D 10 kompatibilne akceleratore na MS operativnom sistemu Windows Vista, pojavio se nedavno, i odmah ga počinjemo koristiti u našim materijalima.

Neki od ranije poznatih testova kao dio ažuriranog paketa prepisani su za DX10, dodani su novi tipovi sintetičkih testova: modificirani testovi pikselskih shadera prepisani za SM 4.0, testovi geometrijskih shadera, testovi uzorkovanja tekstura iz vertex shadera. Ovaj članak će biti prvi za RightMark3D 2.0, uključuje veliki set testiranih video kartica, a zatim ćemo početi koristiti novi test u našim osnovnim materijalima.

Treba napomenuti da su svi naši testovi čisto sintetički, obično koriste samo određene GPU jedinice, a utjecaj na performanse ostalih je namjerno sveden na minimum. U svim testovima centralni procesor nije uključen, sve se smatra isključivo video čipom. Započnimo naša dugo očekivana DirectX 10 benchmarks!

Uslovi ispitivanja

Verzija paketa sintetičkih testova RightMark3D 2.0 koju koristimo sa kratkim opisom testova dostupna je za preuzimanje (4,5 MB)

Zahtijeva RightMark3D 2.0 instalirani paket GOSPOĐA Visual studio 2005 runtime kao i posljednji DirectX ažuriranje vrijeme izvođenja.

Napomena: snimak ekrana prikazuje specijalnu verziju RightMark3D 2.0 sa mogućnošću testiranja u batch modu. Dizajniran je za internu upotrebu i bit će dostupan kasnije.

Konfiguracija testnog stola:

  • Računar uključen Zasnovan na Intelu Core 2 Duo (Socket 775)
    • Intel procesor Core 2 Duo Extreme X6800 (2930 MHz) (L2 = 4096K);
    • EVGA nForce 680i SLI matična ploča uključena Nvidia čipset nForce 680i;
    • RAM 2 GB DDR2 SDRAM Corsair 1142MHz (CAS (tCL) = 5; kašnjenje od RAS do CAS (tRCD) = 5; prepunjenje reda (tRP) = 5; tRAS = 15);
    • WD Caviar SE WD1600JD 160GB SATA tvrdi disk;
    • jedinica za napajanje Tagan 1100-U95 (1100W).
  • operaciona sala Windows sistem Vista Ultimate 32-bit; DirectX 10;
  • Dell 3007WFP monitor (30").
  • ATI CATALYST drajveri verzija 8.3891; Nvidia ForceWare verzija 158.45.

Provedeni su sintetički testovi na video karticama:

  • RADEON HD 2900 XT sa standardnim parametrima
  • RADEON HD 2600 XT sa standardnim parametrima
  • RADEON HD 2600 PRO sa standardnim parametrima (verzija sa GDDR3 video memorijom)
  • RADEON HD 2400 XT sa standardnim parametrima
  • Geforce 8800 Ultra sa standardnim parametrima
  • Geforce 8800 GTX sa standardnim parametrima
  • Geforce 8800 GTS sa standardnim parametrima (verzije sa 320 i 640 MB video memorije pokazuju slične performanse)
  • Geforce 8600 GTS sa standardnim parametrima
  • Geforce 8600 GT sa standardnim parametrima
  • Geforce 8500 GT sa standardnim parametrima

Za međusobnu poređenje grafičkih kartica koristit će se parovi AMD i Nvidia modela koji se poklapaju u tržišnom pozicioniranju: HD2900XT - GF8800GTS, HD2600XT - GF8600GT, HD2600PRO - GF8500GT. Neke od video kartica još nisu na tržištu, i ako jesu realne cijeneće biti drugačije, potrebno je izvršiti izmjene i dopune zaključaka članka. Cijene se također stalno mijenjaju, a mnogi zaključci članka vrijede samo za vrijeme njegovog objavljivanja. Naravno, ovo se ne odnosi na teoretsko poređenje juniorskih i senior čipova iste kompanije, procjena njihovog relativnog učinka ne ovisi o cijenama.

Opisi i rezultati ispitivanja

Podsjećamo vas da rezultate sintetičkih testova unificiranih DirectX 10 arhitektura treba pažljivo analizirati, opterećenje u njima često leži samo na jednoj ili dvije vrste shadera: verteksni, geometrijski, pikselski. A ako se na konvencionalnoj arhitekturi, s uravnoteženim opterećenjem na svim gore navedenim blokovima, performanse ne smanjuju, onda će na unificiranoj arhitekturi ukupan rad pasti na sve odjednom, a brzina renderiranja će pasti.

PS 4.0 Pixel Shader testovi (teksturiranje, petlje)

Nova verzija RightMark3D 2.0 koja se koristi u ovom članku uključuje dva PS 3.0 testa koja već poznajemo, najteži od naših sintetičkih testova sjejdera piksela za Direct3D 9, kao i dva potpuno nova testa. Prvi su prerađeni za DirectX 10, dodali su i self-shadowing i mogućnost omogućavanja supersamplinga, što dodatno povećava ionako značajno opterećenje na video čipovima.

  • Krzno- proceduralni shader rendering fur
  • Mapiranje strme paralakse- "teška" verzija tehnike mapiranja paralakse, koja se još ne koristi u igrama, prethodno opisana u članku

Ova dva testa mjere performanse izvršavanja pikselskih shadera sa petljama, sa velikim brojem dohvaćanja teksture (u najtežem režimu, do nekoliko stotina uzoraka po pikselu!) i relativno niskim ALU opterećenjem. Drugim riječima, oni mjere brzinu uzorkovanja teksture i efikasnost grananja u pikselskom shaderu.

Naš prvi piksel shader test će biti Fur. Sa najviše niske postavke koristi 15 do 30 uzoraka teksture iz mape visine i dva uzorka iz glavne teksture. Detalj efekta - “High” način povećava broj uzoraka do 40-80, omogućavajući “shader” supersampling - do 60-120 uzoraka, a “High” mod zajedno sa SSAA razlikuje se po maksimalnoj “ozbiljnosti” - od 160 do 320 uzorci sa visinske karte. izgleda ovako:

Vrlo težak test, čak i ako je suditi po opisu. Pogledajmo kako se sve DirectX 10 video kartice koje su nam dostupne nositi s tim. Prvo provjerimo modove bez uključenog supersamplinga, relativno su jednostavni, a omjer rezultata u “Low” i “High” modovima bi trebao biti približno isti.

Prvi testovi proceduralnog prikazivanja krzna sa višestrukim dohvatima tekstura iz složenih shadera sa petljama pokazuju ogromnu prednost Nvidia grafičkih kartica u odnosu na AMD rješenja. Čak i Nvidijini čipovi srednjeg ranga pokazuju rezultate u rangu sa AMD-ovim vrhunskim rješenjem, a da ne spominjemo kartice bazirane na G80 čipovima, koji nemaju konkurenciju. Dakle, prema ovom testu, sva Nvidia rješenja su brža od odgovarajućih AMD video kartica. S obzirom da takvo zaostajanje teoretski ne bi trebalo biti, može se pretpostaviti da u niskim rezultatima AMD-a u u velikoj mjeri krivi su nedovršeni vozači.

Brojke prikazane u različiti načini rada, dobro koreliraju jedni s drugima - rezultati u "Visokom" su oko jedan i po puta niži nego u "Niskom". Što se tiče omjera performansi između vrhunskih i kartica srednjeg ranga, možemo reći da smanjenje izvršnih jedinica pogađa čipove srednjeg i srednjeg ranga. nižim nivoima od oba proizvođača, ovo se posebno odnosi na Nvidia rješenja (i AMD, ako se pretpostavka o nedostacima trenutne verzije vozač je tačan) - G84 zaostaje za G80 tri puta, a G86 pokazuje rezultat dva puta manji. Sudeći po ovim brojkama, učinak ovog testa ne zavisi samo od broja i brzine TMU-a, inače bi razlika bila manja.

Pogledajmo rezultat istog testa, ali sa omogućenim supersamplingom “shader”, što učetvorostručuje radno opterećenje:

Samo vrhunski čipovi sposobni su za takvu složenost testa, o tome rječito govore prikazane vrijednosti brzine kadrova. Općenito, slika je otprilike ista kao u prethodnom slučaju, ali se jasno vidi da kako se povećava složenost shadera i opterećenje na video čipu, AMD rješenja počinju da sustižu Nvidia video kartice. Geforce 8600 više ne nadmašuje HD 2900 XT, iako mu je blizu, a Geforce 8500 GT čak počinje pomalo gubiti od svog konkurenta u cjenovnom rangu, HD 2600 PRO.

Omogućavanje supersamplinga teoretski povećava opterećenje za tačno četiri puta, ali na video karticama porodice G8x usporava brzinu za više od 5 puta, a na R6xx - samo za faktor 3, zbog čega potonje dobijaju poboljšane relativne rezultate pod takvim uslovima. Najvjerovatnije, uz odgovarajuću doradu drajvera, Nvidia će moći smanjiti pad performansi kada je omogućen SSAA, ali nakon svega, AMD također ima slične mogućnosti za poboljšanje...

Drugi benchmark koji mjeri performanse složenih pikselskih shadera s petljama s velikim brojem dohvaćanja teksture je Steep Parallax Mapping. Na niskim postavkama koristi 10 do 50 uzoraka teksture iz mape visine i tri uzorka iz glavnih tekstura. Kada uključite težak način rada sa samosjenčanjem, broj uzoraka se udvostručuje (sa 20 na 100), supersampling povećava ovaj broj četiri puta (sa 40 na 200 uzoraka). Najteže test mod uz supersampling i self-shadowing koristi od 80 do 400 uzoraka teksture, odnosno osam puta više nego u jednostavnom modu.

Ista stvar - prvo provjeravamo jednostavne opcije bez supersamplinga:

Drugi test je zanimljiviji sa praktične tačke gledišta, budući da se u igrama već koriste različite vrste mapiranja paralakse, a uskoro će se u njima koristiti i teške opcije, poput našeg strmog mapiranja paralakse. A u ovom testu, pored supersamplinga, možete omogućiti i samosjenčanje, što otprilike udvostručuje opterećenje video čipa. Ovaj način rada se zove "High", a normalni način se zove "Low".

U našim Direct3D 9 testovima paralakse mapiranja, ATI-jeva (a potom i AMD-ova) rješenja su tradicionalno bila jaka, ovaj put nisu pobijedila, naprotiv, bez omogućenog supersamplinga, Nvidia čipovi se brže nose sa zadatkom. Odmah primjećujemo nešto veći pad performansi pri prelasku sa “Low” na “High” mod na AMD video karticama. Promjena rezultata kada je omogućeno self-shadowing za Nvidia rješenja je oko 1,5 puta, a za AMD - više od dva puta. Zbog toga su rezultati u "High" modu za potonje relativno niski. Općenito, prema rezultatima provedenih testova još jednom možemo konstatirati pobjedu Nvidijinih rješenja u svim cjenovnim rangovima, a dobitak je posebno uočljiv u gornjem segmentu.

Čipovi u srednjem i nižem cjenovnom rangu pokazuju približno iste ili nešto bolje rezultate na ovom testu: oni srednjeg ranga zaostaju više od dva puta za vrhunskim, a najslabiji isto vrijeme iza prosjeka. Da vidimo šta će promijeniti uključivanje supersamplinga, u prošlom testu je izazvalo veći pad brzine na Nvidiji, a to može poboljšati poziciju AMD kartica.

Još jednom, brojke FPS pokazuju složenost naših zadataka, čak i za vrhunska rješenja. Pogledajte rezultujuću brzinu kadrova u sekundi sa omogućenim supersamplingom i self-shadowing (zadnji grafikon), njihova kombinacija povećava opterećenje za skoro osam puta, uzrokujući katastrofalan pad performansi. Razlika između brzine video kartica od različitih segmentima cijena uporno.

Omogućavanje supersamplinga utiče skoro isto kao u prethodnom slučaju - kartice zasnovane na AMD R6xx čipovima poboljšavaju svoje performanse u odnosu na Nvidia G8x. Čudno je da je Nvidia pala 4 puta (jednako teoretskom), dok je AMD samo 3 puta. Uprkos tome, AMD ne uspijeva u ukupnoj pobjedi, osim što u nižem cjenovnom segmentu GeForce 8500 GT (G86) obično gubi od HD 2600 PRO (RV630). U preostalim parovima navodimo još jednu pobjedu Nvidijinih rješenja.

PS 4.0 Pixel Shader testovi (računanje)

Sljedećih nekoliko testova pixel shadera sadrži minimum uzoraka teksture, ovo je učinjeno kako bi se smanjio utjecaj brzine TMU-a na ukupnu brzinu. Ali veoma veliki broj aritmetičke operacije(sin, cos, eksponencijal, itd.). Ovi testovi mjere matematičke performanse video čipova, brzinu izvršavanja aritmetičkih instrukcija u piksel shaderu. Uticaj svih ostalih izvršnih jedinica je minimiziran.

Prvi matematički test je Mineralni. Može se nazvati složenim proceduralnim testom teksturiranja, koristi samo dva uzorka iz podataka o teksturi i 65 instrukcija poput sin i cos, više od hiljadu instrukcija po pikselu ukupno.

Prema rezultatima našeg istraživanja korištenjem prethodne verzije Direct3D 9 paketa sintetičkih testova, u računski složenim zadacima AMD arhitektura pokazuje se jako dobro, sva njihova rješenja su ispred konkurencije. Ali Nvidia G8x ne zaostaje toliko. Da, AMD rješenja su brža u svim cjenovnim segmentima, ali u high-end, koji je strateški najvažniji, prednost je mala, pogotovo ako se uzme u obzir da Nvidia ima i skuplja rješenja. U donjem i srednjem segmentu rješenje na G86 čipu ne može izdržati navalu nižeg RV630 i otprilike odgovara rješenju baziranom na RV610, a brza opcija baziran na G84 zaostaje za vrhunskim RV630. Generalno, ako uzmemo u obzir realne i procenjene cene svih rešenja, pobeda je ovoga puta za AMD.

Performanse rješenja srednjeg ranga oba proizvođača u ovom testu su oko dva puta niže od performansi najbližih top-end rješenja, low-end čipovi su čak dva puta lošiji. Tradicionalni odnos je posmatran po ko zna koji put, potpuno u skladu sa rezom sa stanovišta teorije, uzimajući u obzir taktne frekvencije. Općenito, nije sve tako loše sa DirectX 10 čipovima srednjeg i nižeg nivoa... Iako, u svakom slučaju, ne govorimo o maksimalne postavke buduće D3D 10 igre, i high-end kartice će imati teškoće u njima.

Drugi test ove jedinice zove se Vatra, a za ALU je još teži. Ima samo jedno dohvaćanje teksture, ali je broj sin i cos instrukcija povećan na 130, više od hiljadu instrukcija ukupno.

Hajde da vidimo šta se promenilo sa povećanjem opterećenja:

Odmah napominjemo da potpuno poređenje u "Fire" testu ne radi - postoji očigledna greška u AMD drajverima, koja ne dozvoljava njihovim proizvodima da pokažu rezultate koji odgovaraju stvarnoj snazi. Prije izvlačenja zaključaka, sačekajmo popravke u drajverima.

Razlika između mlađih verzija G80 i starijeg G84 ponovo se pokazala nešto više od dva puta, što otprilike odgovara razlici u frekvencijama i broju izvršnih jedinica. Isto važi i za jeftiniji Nvidia čip.

Geometrijski testovi shadera

RightMark3D 2.0 uključuje dva testa brzine geometrijskog shadera različitim uslovima... Prva opcija se zove "Galaxy", tehnika je slična "point sprites" iz prethodne verzije Direct3D. On animira sistem čestica na GPU-u, geometrijski shader iz svake tačke (od 0,5 do 2,0 miliona ukupno) stvara četiri vrha koji formiraju česticu (kvad ekspanzija). Po svemu sudeći, slični algoritmi će se uveliko koristiti u budućim DirectX 10 igrama, pa su rezultati prikazani u testu posebno zanimljivi.

Važno je napomenuti da promjena balansiranja u našim testovima shadera geometrije ne mijenja vizualni rezultat, u oba slučaja je konačna slika potpuno ista, samo se mijenjaju metode obrade scene. Parametar "GS load" određuje u kojem shaderu se izvode proračuni - u verteksnom ili geometrijskom, ali je broj proračuna isti u oba slučaja.

Razmotrimo prvu varijantu Galaxy testa, sa proračunima u vertex shaderu, za tri nivoa geometrijska složenost:

Može se vidjeti da je omjer brzina s različitom geometrijskom složenošću scena bio približno isti za sve uvjete, samo se apsolutne vrijednosti razlikuju. Performanse koje pokazuju sva rješenja u potpunosti odgovaraju broju bodova, sa svakim korakom pad FPS-a je oko dva puta. Nvidia video kartice u ovakvim uslovima se osećaju malo bolje, pokazujući bolje rezultate u svim uporedivim parovima: Geforce 8800 GTS je brža od HD 2900 XT, Geforce 8600 GT je brža od HD 2600 XT, Geforce 8500 GT je brža od HD 2600 PRO. Razlika, iako mala, postoji.

Zadatak nije tako težak moderne video kartice, top-end rješenja su neznatno nadmašila video kartice srednjeg nivoa, razlika ne dostiže ni dva puta. Iako low-end zaostaje za srednjim svejedno dva puta. Možda će se, prilikom prijenosa dijela proračuna na geometrijski shader, situacija promijeniti, kao kod upoređivanja rješenja različitih proizvođača i segmentima cijena. Sada ćemo to provjeriti.

Zaista, došlo je do nekih promjena. Sada rješenja zasnovana na G8x čipovima ne nadmašuju uvijek rješenja zasnovana na R6xx u svim slučajevima sa različite količine geometrija. Iako Geforce 8600 GT još uvijek nadmašuje RADEON HD 2600 XT, a Geforce 8500 GT neznatno nadmašuje HD 2600 PRO, vrhunska AMD video kartica preuzima vodstvo. Zanimljivo je da gotovo da i nema razlike između brojki za Geforce 8800 GTX i GTS, iako je broj aktivnih izvršnih jedinica za ove čipove različit. Kao rezultat toga, AMD nastavlja da gubi, što je malo čudno, s obzirom na visoku efikasnost izvršavanja vertex shadera od strane njihovih čipova zabeleženu u našim prethodnim testovima. Da vidimo hoće li se rezultat promijeniti u drugom testu...

Hyperlight je drugi test geometrijskog shadera u novoj verziji RightMark3D, koji demonstrira upotrebu nekoliko zanimljivih tehnika odjednom: instanciranje, izlaz toka, opterećenje bafera. Koristi se dinamičko stvaranje geometrije crtanjem u dva bafera, koristi se i ovaj test nova prilika DX10 - stream izlaz. Prvi korišteni shader generiše smjer zraka, brzinu i smjer njihovog rasta, ovi podaci se stavljaju u bafer koji drugi shader koristi za renderiranje. Za svaku tačku zraka, 14 vrhova je izgrađeno u krug, do milion izlaznih tačaka ukupno.

Nova vrsta shader programa se koristi za generisanje "zraka", a sa parametrom "GS load" postavljenim na "Heavy" - takođe za njihovo renderovanje. To jest, u "Balanced" modu, geometrijski shaderi se koriste samo za kreiranje i "rastuće" zraka, izlaz se vrši korištenjem "instanciranja", a u "Heavy" modu, geometrijski shader je također uključen u izlaz. Pogledajmo prvo svjetlosni način rada:

Rezultati različitih video kartica su praktično isti u odnosu na druge, bez obzira na geometrijsku složenost scene. Performanse se dobro skaliraju i gotovo odgovaraju teoretskim parametrima, prema kojima bi svaki sljedeći nivo "broja poligona" trebao biti duplo sporiji.

Velika prednost Nvidia video kartica se uočava i ovoga puta, kada opterećenje geometrijskih shadera nije toliko veliko. RADEON HD 2900 XT je inferioran čak i od GeForce 8600 GT, a niže rješenje iz Nvidije je malo ispred HD 2600 XT. O G80 ne treba govoriti – oni su daleko ispred, a njihov učinak je očigledno ograničen nečim drugim, jer ne pobjeđuju previše u odnosu na G84.

Zanimljivo je da su performanse HD 2400 XT skoro jednake performansama HD 2600 PRO i obe brojke su daleko iza HD 2600 XT, što u prethodnim vremenima nije bio slučaj. Svi ovi brojevi mogu se promijeniti u našem sljedećem testu, gdje se geometrijski shaderi koriste još aktivnije. Posebno će biti zanimljivo međusobno uporediti brojeve dobijene u "Balanced" i "Heavy" modovima.

Slažem se, situacija je potpuno drugačija! Možemo jasno reći da čipovi serije AMD R6xx obavljaju takav posao mnogo brže od Nvidia G8x čipova, imaju prednost od 2 puta ili čak i više. Izvedba ovih testova u velikoj mjeri ovisi o složenosti geometrijskih shadera. AMD čipovi ne obavljaju samo posao brže odluke Nvidia, ova razlika raste kako geometrija postaje složenija. Ispostavilo se da što je teži posao za geometrijski shader, to će R6xx biti brži u poređenju sa G8x.

Ali, upoređujući rezultate u različitim modovima, kada su različiti tipovi shadera uključeni u izlaz, treba napomenuti da su Nvidijini rezultati u "Balanced" bolji nego u "Heavy" od AMD-a. Uprkos činjenici da se prikazana slika ne razlikuje. Ovo još jednom prijeti programerima 3D aplikacija da će morati optimizirati svoj kod za dvije tako različite arhitekture kako bi dobili najbolje performanse od obje.

Prilikom prelaska sa korištenja "instanciranja" na geometrijski shader za izlaz, Nvidia video kartice gube mnogo u performansama, od 2 do 6 puta. Štoviše, što je čip mlađi, to je veća razlika u brzini renderiranja između dva načina. S druge strane, AMD ima suprotno, rezultati u načinu korištenja geometrijskog shadera za izlaz su veći od onih kod "instanciranja", doduše ne nekoliko puta. Ispostavilo se da sami geometrijski shaderi rade bolje na AMD čipovima s povećanjem rada (broja generiranih vrhova), ali stvarnost se razlikuje od sintetičkih testova da su programeri slobodni da biraju svoj vlastiti put, a ako koriste vertex shadere za svoje zadatke će biti profitabilnije, možda će to i učiniti.

Razlika između brzine u "Balanced" i "Heavy" modovima za različite čipove iste linije je također izuzetno zanimljiva. Smiješna situacija sa poređenjem HD 2400 XT i HD 2600 PRO se pogoršala - sada je mlađi čip čak i bolji od starijeg. A "greška" je ovdje, najvjerovatnije, više visoka frekvencija junior rješenje i podešavanje trokuta ograničenja brzine. Nvidia to nema, svi čipovi su pokazali rezultate striktno prema liniji - G84 je 2-3 puta sporiji od G80, a G86 4-6 puta sporiji. Postoji još jedna misterija povezana sa HD 2600 PRO, koja se ne može objasniti - samo ova video kartica iz AMD-a gubi u performansama kada se promeni režim iz „Balanced“ u „Heavy“ u režimu sa velikom količinom geometrije.

Treba napomenuti i grešku u AMD drajverima, koja se pojavljuje samo na HD 2900 XT, što uzrokuje izostanak prikazane slike u najtežem režimu "Hyperlight" testa i anomalnu visok rezultatšto se ne može pogrešiti sa ispravnim. Stoga nema rezultata za ovu video karticu na zadnjem dijagramu.

Glavni zaključak ovog dijela je da različiti testovi geometrijskih shadera mogu dati različite rezultate, u nekima će prednjačiti Nvidia rješenja, u drugima - AMD. Sa porastom složenosti geometrijskog shadera, AMD izlazi naprijed, ali morate imati na umu da su sve ovo sintetički testovi, oh pravi učinak može se suditi samo po testovima igara, kojih je, nažalost, još uvijek vrlo malo.

Brzina dohvaćanja tekstura iz vertex shadera

Testovi Vertex Texture Fetch mjere brzinu veliki broj uzorci teksture iz vertex shadera. Testovi su slični jedni drugima, u teoriji bi odnos brzina testova "Zemlja" i "Talasi" trebao biti približno isti. U oba testa koristi se na osnovu podataka iz uzoraka teksture. Razlika je u tome što test Waves koristi uslovne skokove, dok Earth test ne koristi.

U prvom testu ("Earth") 32 (za "Effect detail Low" mod) ili 48 ("Effect detail High") bilinearni uzorci teksture su napravljeni za svaki vrh. Broj vrhova se takođe može menjati, za tri moguća moda ovi brojevi odgovaraju: 30.000, 124.000 i 280.000.

Uzmite u obzir Niski način rada s detaljima efekta:

Sva tri grafikona pokazuju približno istu sliku performansi video kartica u odnosu jedna na drugu, osim Geforce performanse Kada se opterećenje poveća, 8500 GT "propada" brže od performansi konkurentske HD 2600 PRO, ako prva video kartica pobijedi u "Low", onda je u "High" rješenje od AMD-a već naprijed. U paru HD 2600 XT i Geforce 8600 GT sve je upravo suprotno, sa malim opterećenjem AMD rješenje je ispred, au “High” već malo zaostaje. Među vrhunskim rešenjima, borba nije uspela, sve varijante G80 su brže od R600.

Odnos između performansi gornjih rešenja i video kartica srednjeg i nižeg nivoa ostaje isti, do 2-3 puta između prvog i 2-3 puta između drugog. Previše je zanimljivo velika razlika u performansama između HD 2600 PRO i HD 2600 XT, to se ne može objasniti različitim brojem teksturnih jedinica (TMU), jer se koriste isti čipovi. Na rezultate testa može uticati propusnost memorije, koja se veoma razlikuje za PRO i XT varijante.

Pogledajmo rezultate istog testa sa povećanim brojem odabira tekstura:

U ovoj varijanti AMD grafičke kartice malo izgubili u brzini u odnosu na svoje rivale. U svim konkurentskim parovima, pobjednici su Nvidia rješenja velika količina efikasno rade teksturne jedinice. Razlika između AMD-a i Nvidije specificirani uslovi iznosi do 1,5-2 puta. Nvidia GPU-ovi su očito efikasniji u dohvaćanju podataka o teksturi, na osnovu benčmarka i šejdera vrhova i piksela.

Da vidimo rezultate drugog VTF testa, zanima me da li će biti sličnih problema? Waves test ima manji broj uzoraka, ali koristi uslovne grane. Broj uzoraka bilinearne teksture u u ovom slučaju do 14 („Detalji efekta Niski“) ili do 24 („Detalji efekta Visoki“) za svaki vrh. Složenost geometrije se mijenja slično kao u prethodnom testu, ukupan broj vrhova može biti približno 124000, 498000 i 1122000 za "Polygon count Low", "Medium" i "High" modove, respektivno.

"Talasi" nam ne pokazuju ništa novo, sve je otprilike isto kao u prethodnom testu "Zemlja". Vidi se da neki Nvidia čipovi (G80 i G86) gube frejmove u sekundi sa povećanjem složenosti geometrije nešto brže od konkurenata iz AMD-a (R600 i RV630), ali su Nvidijina rješenja i dalje najbolja u većini slučajeva.

Posljednji rezultati također otprilike odgovaraju onima prikazanim u prethodnim slučajevima, samo se prednost Nvidia rješenja vidi malo bolje. Generalno, možemo jasno vidjeti da grafičke kartice bazirane na Nvidia G8x čipovima izvode naše testove dohvaćanja teksture iz vertex shadera brže od AMD rješenja baziranih na R6xx arhitekturi. Ovo je glavni zaključak iz ove serije VTF testova.

Zaključak i zaključci o sintetičkim ispitivanjima

Dakle, debi korištenja RightMark3D 2.0 za istraživanje na našoj stranici se dogodio. Testovi u svom sastavu pokrivaju gotovo sve aspekte inovacija u Direct3D 10, fleksibilno su konfigurabilni, omogućavajući nam da procijenimo uporedne performanse svih Direct3D 10 linija čipova iz AMD-a i Nvidia-e. Obje objedinjene arhitekture ovih kompanija pokazale su se prilično dobrim u našim novim Direct3D 10 testovima, nisu pronađeni veliki padovi performansi, osim u nekoliko slučajeva sa očiglednim greškama u AMD drajverima. Obje porodice: R6xx i G8x odlikuju se visokim performansama računarstva i teksture, dobro se nose sa složenim shaderima svih vrsta.

  • Ako uzmemo rezultate u cjelini, onda su Nvidijina rješenja u određenoj prednosti u odnosu na konkurente iz AMD-a, u ovom trenutku njihove video kartice su u većini slučajeva ispred. Ali u nekim testovima AMD čipovi pokazuju vrhunski rezultati, na primjer, u složenim testovima geometrije i shadera piksela. Prednost AMD čipova u takvim testovima čak raste sa povećanjem opterećenja. Dakle, ishod bitke u DirectX 10 igrama još nije utvrđen, nemoguće je sa sigurnošću reći ko će je od rivala dobiti. Možemo samo pretpostaviti da će biti rezultata sličnih našim - u većini aplikacija R6xx i G8x će biti blizu jedna drugoj, u nekim će rješenja bazirana na Nvidia rješenjima prednjačiti, u drugima - AMD. A to će u velikoj mjeri ovisiti o programerima i metodama i algoritmima koje koriste.
  • Pixel Shader 4.0 testovi su pokazali da su Nvidia GPU-i bolji u rukovanju višestrukim preuzimanjima tekstura uz relativno malo ALU opterećenje. AMD rješenja, zauzvrat, nadmašuju konkurente u računalnim testovima pixel shadera. U jednom od njih su video kartice bazirane na čipovima R6xx arhitekture pokazale vrlo dobre rezultate i nadmašile konkurente iz Nvidia tabora, a situacija u drugom testu još nije jasna zbog grešaka u drajverima.
  • Kao što smo već napomenuli, testovi geometrije i vertex shadera daju različite rezultate, u nekima prednjače Nvidia rješenja, u drugima AMD. Kako složenost rada za geometrijski shader raste, napreduju AMD video kartice, može se pretpostaviti da će u aplikacijama s aktivnom upotrebom geometrijskih shadera, ako se budu pojavili u bliskoj budućnosti, prednjačiti čipovi ove kompanije.
  • Poslednji par RightMark3D 2.0 testova su testovi za brzinu dohvaćanja teksture iz vertex shadera. Rezultati prikazani u njima jasno pokazuju da grafičke kartice bazirane na Nvidia G8x čipovima izvode naše testove preuzimanja teksture iz vertex shadera brže od AMD rješenja baziranih na R6xx arhitekturi. To je zbog tradicionalno različite ravnoteže između teksture i računskih mogućnosti čipova dvije konkurentske kompanije.
  • "Smanjenje" broja shader jedinica, TMU-ova i ROP-ova ima prilično značajan uticaj na rješenja srednjeg i nižeg nivoa, značajno smanjujući njihove performanse. Jeftine video kartice ponekad zaostaju za najboljima, najbolje od srednjeg ranga zaostaju 2-3 puta (od HD 2900 XT i Geforce 8800 GTS), a niže kartice još više zaostaju - do 4- 8 puta. Kao što potvrđuju rezultati testova igara, za sada samo Direct3D 9.
  • Na osnovu naših rezultata, AMD-ovi drajveri Vista su očigledno inferiorniji u odnosu na Nvidia drajveri... Ako u našim testovima nisu pronađene greške u proizvodima druge kompanije, onda su AMD-ova rješenja imala dva očigledna problema: cijelu liniju čipova u drugom "računarskom" testu pixel shadera ("Fire"), kao i vrhunsko rešenje HD 2900 XT u najtežem test modu za brzinu uzorkovanja teksture iz vertex shadera “Earth”. Veoma bih želeo da verujem da će ovi nedostaci biti otklonjeni u narednim verzijama drajvera CATALYST.

Zahvaljujući početku prodaje procesora AMD Ryzen 5 prije roka (11. aprila), sada se pojavljuju prve recenzije ovih procesora. Već smo ukratko govorili o performansama 4-jezgrenog Ryzen 5 1400 procesora na sintetičkim testovima i modernim igrama. Sada su naše španske kolege iz El Chapuzas Informatico objavile recenziju 6-jezgrenog AMD procesor Ryzen 5 1600.

Ovaj procesor ima šest fizičkih jezgara, od kojih svaka ima dvije računske niti, što na kraju daje dvanaest niti. Procesor ima baznu frekvenciju od 3,2 GHz i može se dinamički pojačati do 3,6 GHz. AMD Ryzen 5 1600 ima zajedničku L3 keš memoriju od 16 MB (8 + 8 MB), a svako jezgro ima 512 KB L2 keš memorije i 64 KB i 32 KB L1 keš memorije instrukcija i podataka, respektivno. Kao i drugi Ryzen procesori, ovaj čip je smješten u Socket AM4 paketu i ima TDP od 64W. Preporučena cijena novih artikala za američko tržište je 219 dolara.

Konfiguraciju ispitnog stola koju koriste naše kolege predstavljaju sljedeće komponente:

  • Matična ploča: MSI X370 XPower Gaming Titanium;
  • RAM: G.Skill TridentZ DDR4 3600 MHz, takt 2400 MHz;
  • Video kartica: MSI GeForce GTX 1070 Gaming Z;
  • Napajanje: Be Quiet! Dark Power Pro11 1200 V;
  • SSD diskovi: Kingston SSDNow KC400 128GB i Corsair LX 512GB
  • Sistem hlađenja: Wraith Spire;
  • Operativni sistem: Windows 10 64 bit.

Performanse jednog jezgra Ryzen 5 1600 procesora, očekivano, ne razlikuju se mnogo od performansi jednog jezgra Ryzen 7 1700X, budući da su izgrađeni na istim kristalima silikona, samo šestojezgarni procesor ima dvije jezgre onemogućeno.

U multi-threaded CPU-Z testovi i wPrime 2.1 (32M) novi proizvod je pokazao sasvim očekivane rezultate, pokazujući vrlo dobar nivo performansi.

U Cinebench-u 15, novost je nadmašila ne samo overclockane na 4,9 GHz i povećane za više brza memorija(3600 MHz) skuplji četvorojezgarni Intel Core i7-7700K, ali i šest-jezgarni Intel Core i7-5930K. Ali u video kodiranju se pokazalo da je ovo drugo brže.

Ryzen 5 1600 ne radi dobro s memorijom, iako nešto bolji od Ryzen 7 1700X.

U nekim sintetičkim testovima, novi AMD pokazuje bolje rezultate u odnosu na Ryzen 7 1700X, a u nekima i neznatno gubi od njega. U većini sintetičkih testova, Intel Core i7-6700K procesor se pokazao bržim od oba AMD predstavnika.

Što se tiče performansi u igricama, prilično je impresivan. Većina testova u Puna rezolucija HD (1920 x 1080 piksela), novi proizvod je malo iza, od skupljeg Intel Core i7-6700K, a u nekima čak i ispred njega. Zanimljivo je napomenuti da u Doomu (koristeći OpenGL) i Rise of Tomb Raider (koristeći koristeći DirectX 11) Ryzen 5 1600 je značajno ispred Ryzen 7 1700X.

U 4K UHD (3840 x 2160 piksela) situacija je otprilike ista, au slučaju većine igara sve je počivalo na performansama video kartice.

With standardni sistem hlađenja, frekvencija procesora je podignuta na 3,9 GHz, dok je napon jezgre bio 1,36 V. Bit će zanimljivo vidjeti koliko se novi proizvod može overklokovati tečno hlađen, i koje frekvencije će poslušati u ekstremnom overclockanju.

Temperatura AMD Ryzen 5 1600 procesora je 39 stepeni Celzijusa tokom mirovanja, a 62 - 65 stepeni Celzijusa pod opterećenjem. Potrošnja sistema baziranog na novini u igricama iznosila je 245 W, što je približno jednako potrošnji sistema baziranog na Intel Core i7-6700K, koja je jednaka 250 W.

Kontroverza o "za i protiv" takozvanih sintetičkih testova stara je koliko i svijet. Ili, po najmanje kao i sami sintetički testovi. Glavna ideja na kojoj se zasnivaju je da procene ukupne performanse računarskog sistema, a u teoriji ovo je zaista odlična ideja.

V savršen svijet Rezultat takvog testa može vam dati jasnu i, što je još važnije, realističnu predstavu o tome šta biste očekivali od računara, bilo stonog ili mobilnog, u različitim praktičnim scenarijima - od posla i pretraživanja interneta do multimedijalne zabave i igrice.

Nažalost, ne postoje savršene stvari i iz tog razloga sintetički testovi, kao i svaka druga stvar, nisu savršeni. Konkretno, dvije najpopularnije i široko korištene test programi ova klasa – 3DMark i PCMark iz Futuremarka – već se našla u epicentru serije skandala. Naravno, ne krivnjom samih Futuremark programera – razlozi, prije svega, leže u različitim pristupima proizvođača da „optimiziraju“ svoju opremu, čime pametno koriste neke nedostatke u procedurama testiranja i implementiraju umjetno napuhane rezultate, koje, međutim, tada nisu potvrđene u praksi.

Iako im to daje lošu reputaciju, sintetički testovi su još uvijek popularni. Međutim, oni se retko koriste kao jedini pokazatelj performansi računara. Umjesto toga, često ih prati realističnija alternativa za mjerenje brzine, a to su obično najaktuelnije igre s ugrađenim mjeračem za jednu od najvažnijih metrika za svakog igrača – broj okvira u sekundi.

Međutim, u nekim slučajevima, ova vrsta testa nije primjenjiva s čisto pragmatične tačke gledišta – na primjer, kada dolazi sistemi poslovne klase za koje performanse igara nisu kritične. Razlog je taj što igre ostavljaju lažan utisak kada su u pitanju moćne mašine poput Lenovo ThinkPad X1 Carbon ili HP EliteBook 1040. Ovakvi uređaji su namenjeni potpuno drugačijem skupu korisnika – ljudima kojima nije stalo da li Battlefield 4 može da se „vozi " na njihovom laptopu pri 60+ sličica u sekundi. Umjesto toga, zanimaju ih stvari kao što su čvrstoća strukture, pouzdana zaštita informacija i maksimalno vrijeme. samostalan rad.

U takvim slučajevima "sintetika" priskače u pomoć - poput PCMarka, koji mjeri ukupne performanse cijele konfiguracije. Međutim, to dovodi do nekih posebnosti u pogledu pravilnog tumačenja rezultata, što razni sistemi pokazati na testu.

Studija slučaja: Direktno poređenje igre Lenovo laptop Y50 i HP EliteBook 1040 Business Ultrabook mogu biti zbunjujući. Razlog je što su rezultati ova dva sistema slični, ali je jedan od njih baziran na prilično moćnom diskretna grafička kartica (NVIDIA GeForce 860M), a drugi na integrisanom grafičkom rešenju (Intel HD Graphics 4400). Međutim, ako uporedimo njihove igračke performanse, brzo postaje jasno da za razliku od Lenovo Y50, EliteBook 1040 ne može pružiti optimalno iskustvo igranja... I ne bi trebao, jer u ovom slučaju govorimo o mobilni auto sa potpuno drugom svrhom.

Ali pošto PCMark uzima u obzir ukupne performanse, obe mašine dobijaju slične rezultate. U osnovi, test se sastoji od niza različitih zadataka, čija je ukupna svrha da precizno (koliko je to moguće) procijeni sposobnost određenog računara da se nosi sa uobičajenim, svakodnevnim scenarijima opterećenja. Na primjer, PCMark ima zadatke dizajnirane za procjenu performansi računara u scenarijima kao što su surfanje Internetom, rad sa uređivač teksta, uređivanje digitalne slike, video chat i casual igre.

Svaki od ovih testova učitava komponente sistema na svoj način, dok se ukupne performanse sistema koji se testiraju izračunavaju pomoću posebne formule i formira se konačni rezultat.

Međutim, ako želite jasnije razumjeti mogućnosti računara, trebate učiniti dvije stvari: Prvo, pogledajte detaljnu analizu rezultata po odjeljcima. Drugo, posjetite Futuremark web stranicu; tamo ćete naći stotine hiljada različitih konfiguracija i možete uporediti performanse vašeg sistema sa mašinom sa sličnim, nižim ili višim parametrima.

I još nešto – da ponovim u zaključku: rezultate sintetičkih testova, bilo da se radi o 3DMark ili PCMark, ne treba shvatiti doslovno. Oni su samo dobar benchmark, jedan od mnogih alata za procjenu performansi računara, tako da im ne biste trebali dati previše od velikog značaja... Ako su vam potrebne detaljne, sveobuhvatne informacije koje će vam pomoći da odaberete jednu ili drugu konfiguraciju, budite strpljivi i pročitajte cijelu recenziju (ili, bolje, nekoliko recenzija u različitih izvora) umjesto skrolovanja do kraja samo da biste vidjeli sintetičke benchmark rezultate.

Ugodan dan!

Sintetički testovi

V originalna recenzija svi testovi idu na različite stranice, kombinirat ću ih radi pogodnosti, ali ću ih podijeliti na sintetičke i igračke.

Wprime 2.0

Dobro poznati uslužni program za testiranje višejezgrenih procesora određuje njihovu snagu izvođenjem određenih proračuna. Što je manje vremena potrebno za završetak testa, to je bolji rezultat.

Najbrži (što i nije iznenađujuće – sa svojom brzinom takta) se pokazao kao glavni procesor današnjeg testa. Bilo je neprijatno iznenađeno da je Core i5 2300 zaostajao za i5 760 za skoro sekundu (na istu frekvenciju). Vjerovatno je efekat bila manja veličina keša trećeg nivoa.

Fritz Chess Benchmar

A ovo je test koji utvrđuje performanse procesora obradom različitih šahovskih algoritama. U ovom benčmarku, što više bodova, to je bolji rezultat.

"Stari" Core i5 760 pretekao je sve predstavnike porodice Sandy Bridge.

WinRAR 3.92

Ovaj arhivator ne treba predstavljati. Performanse će biti određene brojem KB/s kada se komprimiraju određene datoteke... Što veće, to bolje.


Slika, kao i na prvom testu, prednjači sa 2500K, a slijedi 760. sa velikim zaostatkom, dva koraka od koje je i5 2300.

7-Zip 9.13

Drugi poznati arhivar, koji sam lično preporučio mnogima (pritišće mnogo bolje od RAR-a i ZIP-a, dobar je prijatelj višejezgarni procesori i OS x64, plus potpuno besplatno) u dogledno vrijeme. Performanse se izračunavaju na isti način kao u prethodnom testu.


Test je obavljen u režimu kompresije (prvi graf) i dekompresiji (drugi) fajlova. Jasno se vidi ko je u prednosti i koliko.

Adobe Photoshop CS5

Čuveni paket za obradu grafičke datoteke... Nisam uhvatio kako su procesori konkretno testirani (ako imate neku ideju - javite nam), ali ipak, pogledajmo rezultate:


Očigledno je rezultat u sekundama. Manje je bolje. Prednjače "Sandy Bridges".

POV-Ray 3.7

POV-Ray - popularan program With open source za testiranje procesora u operacijama s pomičnim zarezom. Broj bodova u testu je broj renderiranih piksela u sekundi, što više, to bolje.


Ponavlja se situacija iz prethodnog testa. Obratite pažnju na prednost koju i5 2300 ima u odnosu na i5 760 (da vas podsetim da je frekvencija takta ista za oba procesora)! Definitivno nova arhitektura pokazuje karakter. Ili Turbo način rada pomaže?

CineBench R11.5

Sinebench ne treba predstavljati odličan test performanse procesora (i u režimu 1 niti iu nekoliko) u uslovima 3D renderovanja.


Slika je potpuno ista kao u prethodnih nekoliko testova. "Mostovi" ispred, 760. - iza. A prednost novih proizvoda je vrlo solidna.

H.264 Encoder V2

Kodiranje videa je zadatak za koji se često bave moćni procesori... Što je manje vremena potrebno za kodiranje video materijala u h264, to bolje.


Jadno 760! Sandy Bridge "i ne daj mu priliku da pobijedi. Ja vec hocu takav procesor (samo hexacor, barem), bolje odmah overclockan na 4,5-5 GHz. A onda na Atomu" e i Q9550, kodiranje videa je više nije tako radostan kao pre

Ne volim kada neko pokušava da koristi ručno izrađene uzorke koda da proceni mogućnosti statičkog analizatora koda. Od sada konkretan primjer Pokazat ću zašto imam negativan stav prema sintetičkim testovima.

Ne tako davno, Bill Torpey je napisao bilješku na svom blogu "Even Mo" Static, gdje je opisao kako su, po njegovom mišljenju, Cppcheck i PVS-Studio alati funkcionirali pri analizi projekta itc-benchmarks. Projekat itc-benchmarks je statičke analize iz Toyote ITC.

Nije mi se svidjelo što nakon čitanja članka, imam utisak da su analizatori Cppcheck i PVS-Studio približno jednaki u svojim mogućnostima. Iz članka proizlazi da jedan analizator radi bolje u jednom, drugi u drugom, ali su u cjelini njihove dijagnostičke mogućnosti slične.

Mislim da nije tako. Po mom mišljenju, naš PVS-Studio analizator je nekoliko puta moćniji od Cppcheck-a. I generalno, ovo nije "mišljenje", znam to!

Međutim, kako spolja nije jasno da je PVS-Studio 10 puta bolji od Cppcheck-a, onda treba pokušati razumjeti razlog. Odlučio sam da pogledam upravo ove itc-benchmarkove i otkrijem zašto PVS-Studio nije pokazao dobre rezultate na ovoj test bazi.

Što sam dalje shvaćao, to sam se više iznervirao. I jedan primjer me potpuno debalansirao, o čemu ću pričati malo kasnije. Moji zaključci su: nemam pritužbi na Billa Torpeya. Napisao je dobar, pošten članak. Hvala Bill. Ali imam pritužbi na Toyotu ITC. Moje lično mišljenje: njihova testna baza je sranje. Ovo je, naravno, glasna izjava, ali vjerujem da imam dovoljno kvalifikacija i iskustva da govorim o statičkim analizatorima koda i kako ih procijeniti. Po mom mišljenju, itc-benchmarks se ne mogu koristiti za adekvatnu procjenu sposobnosti jednog ili drugog analizatora.

A evo i samog testa, koji me konačno izbacio iz mira.

Dakle, šta se ispostavilo da je PVS-Studio slabiji od Cppcheck-a u ovom primjeru? Ne, samo je jači!

PVS-Studio analizator razumije da je ovaj kod napisan namjerno i ovdje nema greške.

Postoje situacije kada je sličan kod napisan posebno da izazove izbacivanje izuzetka kada se dereferencira nulti pokazivač. Ovo se može naći u testovima ili u određenim dijelovima koda. Takav kod smo vidjeli mnogo puta. Na primjer, evo kako bi ovo moglo izgledati u pravom projektu:

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; }
Stoga je u analizatoru PVS-Studio u dijagnostici V522 implementirano nekoliko izuzetaka, kako se ne bi psovali na takav kod. Analizator to vidi null_pointer_001 nije prava funkcija. U stvarnom kodu, nema grešaka u funkcijama kada se nula upiše u pokazivač i odmah se dereferencira. I naziv funkcije govori analizatoru da ovdje postoji razlog za "null pokazivač".

Za takve slučajeve, V522 dijagnostika implementira A6 izuzetak. Pod nju spada i sintetička funkcija. null_pointer_001... Evo koliko je opasan izuzetak A6:

Dereferenciranje varijable je u funkciji čije ime sadrži jednu od riječi:

  • greška
  • default
  • crash
  • null
  • test
  • kršenje
  • bacanje
  • izuzetak
U ovom slučaju, varijabli je dodijeljena 0 linijom iznad.

Sintetički test je u potpunosti zadovoljio ovaj izuzetak. Prvo, postoji riječ "null" u nazivu funkcije. Drugo, dodeljivanje nule promenljivoj se dešava tačno u prethodnom redu. Izuzetak je otkrio lažni kod. A kod zaista nije stvaran, to je sintetički test.

Zbog ovih nijansi ne volim sintetičke testove!

Imam i druge pritužbe na itc-benchmarks. Na primjer, sve je u istom fajlu, možemo vidjeti sljedeći test:

Void null_pointer_006 () (int * p; p = (int *) (intptr_t) rand (); * p = 1; / * Alat bi trebao otkriti ovu liniju kao grešku * / / * GREŠKA: NULL dereferenciranje pokazivača * /)
Funkcija rand može vratiti 0, koja tada postaje NULL. PVS-Studio analizator još ne zna šta može vratiti rand i stoga ne vidi ništa sumnjivo u ovom kodu.

Zamolio sam svoje kolege da nauče analizator kako bi bolje razumjeli što je funkcija. rand... Nema se kuda, morat ćete arhivirati analizator datotekom kako bi bolje funkcionirao na dotičnoj testnoj bazi. Ovo je neophodna mjera, budući da se takvi testovi koriste za evaluaciju analizatora.

Ali ne boj se. Izjavljujem da ćemo nastaviti raditi na stvarno dobroj dijagnostici, a ne na prilagođavanju analizatora testovima. Možda ćemo malo retuširati PVS-Studio za itc-benchmarkove, ali u pozadini i samo na onim mjestima koja imaju barem nekog smisla.

Želim da programeri razumiju da primjer s rand ništa stvarno ne vrednuje. Ovo je sintetički test koji se isisava iz vašeg prsta. Nemojte pisati takve programe. Nema takvih grešaka.

Usput, ako je funkcija rand neće vratiti 0, ali 1400 neće biti bolje. Svejedno, takav pokazivač se ne može dereferencirati. Dakle, dereferenciranje nultog pokazivača je neki čudan poseban slučaj potpuno netačnog koda, koji je jednostavno izmišljen i koji se ne javlja u stvarnim programima.

Svestan sam pravih problema sa programiranjem. Na primjer, ovo su greške u kucanju koje otkrivamo u stotinama, recimo, V501 dijagnostike. Zanimljivo, u itc-benchmarks-u nisam primijetio niti jedan test gdje se provjerava da li analizator može otkriti grešku u kucanju tipa "if (a.x == a.x)". Niti jedan test!

Stoga, itc-benchmarks zanemaruje mogućnosti parsera za pronalaženje grešaka u kucanju. A čitatelji naših članaka znaju koliko su ove greške česte. Ali sadrži, po mom mišljenju, glupe testove koji se ne nalaze u pravim programima. Ne mogu zamisliti da u stvarno ozbiljnom projektu možete naići na sljedeći kod, koji dovodi do prelivanja niza:

Void overrun_st_014 () (int buf; int index; index = rand (); buf = 1; / * Alat bi trebao otkriti ovu liniju kao grešku * / / * GREŠKA: prekoračenje bafera * / sink = buf;)
Možda se to može naći samo u laboratorijskom radu studenata.

Istovremeno, znam da je u ozbiljnom projektu lako pronaći grešku u obliku:

Povratak (! 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));
Ova greška je PVS-Studio analizator

Top srodni članci