Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Zanimljiv
  • Dvije video kartice srednjeg ranga umjesto jedne vrhunske. Računalni resurs U SM

Dvije video kartice srednjeg ranga umjesto jedne vrhunske. Računalni resurs U SM

Prošlo je dosta vremena od izlaska operativnog sustava Microsoft Windows Vista i ažurirani DirectX 10 API uključeni. Postupno 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. 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 usporedbu, naravno, ali vrlo pažljivo ...

Obilje pakiranja sintetičkih i testovi igre s podrškom za Direct3D 10 također se ne opaža, 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 procijeniti vrhunske performanse D3D10 akceleratora u različitim zadacima. Konačna verzija RightMark3D 2.0, dizajnirana za Direct3D 10 kompatibilne akceleratore na MS operativnom sustavu Windows Vista, pojavio se nedavno i odmah ga počinjemo koristiti u našim materijalima.

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

Treba napomenuti da su svi naši testovi čisto sintetički, obično koriste samo određene GPU jedinice, učinak ostalih namjerno je sveden na minimum. U svim testovima središnji procesor nije uključen, sve se smatra isključivo video čipom. Počnimo s našim dugo očekivanim DirectX 10 mjerilima!

Uvjeti ispitivanja

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

Zahtijeva RightMark3D 2.0 instalirani paket MS Vizualni studio 2005 runtime kao i zadnji DirectX ažuriranje vrijeme izvođenja.

Napomena: snimka zaslona prikazuje posebnu verziju RightMark3D 2.0 s mogućnošću testiranja u batch načinu rada. Dizajniran je za unutarnja upotreba i bit će dostupan kasnije.

Konfiguracija ispitnog stola:

  • Računalo uključeno Temeljen na Intelu Core 2 Duo (socket 775)
    • Intelov 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; prednapunjenje reda (tRP) = 5; tRAS = 15);
    • WD Caviar SE WD1600JD 160GB SATA tvrdi disk;
    • jedinica za napajanje Tagan 1100-U95 (1100W).
  • operacijsku salu Windows sustav Vista Ultimate 32-bitna; 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 s 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 s 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 usporedbu video 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 stvarne cijene bit će 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, to se ne odnosi na teorijsku usporedbu juniorskih i senior čipova iz iste tvrtke, procjena njihove relativne izvedbe 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: vertex, geometric, pixel. 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 korištena u ovom članku uključuje dva PS 3.0 testa koja već poznajemo, najteži od naših sintetičkih testova sjenčanika piksela za Direct3D 9, kao i dva potpuno nova testa. Prvi su prepisani za DirectX 10, dodali su i self-shadowing i mogućnost omogućavanja supersamplinga, što dodatno povećava ionako znatno 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 pikselnih shadera s petljama, s velikim brojem dohvaćanja teksture (u najtežem načinu rada, do nekoliko stotina uzoraka po pikselu!) i relativno niskim opterećenjem ALU-a. Drugim riječima, mjere brzinu uzorkovanja teksture i učinkovitost grananja u pikselskom shaderu.

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

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

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

Slike prikazane u različiti načini rada, međusobno dobro koreliraju - rezultati u "Visokom" su oko jedan i pol 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 izvedbenih jedinica pogađa čipove srednjeg i srednjeg ranga. niže razine od oba proizvođača, to se posebno odnosi na Nvidia rješenja (i AMD, ako se pretpostavka o nedostacima trenutne verzije vozač je točan) - G84 zaostaje za G80 tri puta, a G86 pokazuje rezultat dva puta niži. Sudeći prema ovim brojkama, izvedba ovog testa ne ovisi samo o broju i brzini TMU-a, inače bi razlika bila manja.

Pogledajmo rezultat istog testa, ali s omogućenim superuzorkovanjem "shadera", što četverostruko povećava 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 sustizati 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 točno četiri puta, ali na video karticama obitelji G8x usporava brzinu za više od 5 puta, a na R6xx - samo za faktor 3, zbog čega potonje dobivaju poboljšane relativne rezultate pod takvim uvjetima. Najvjerojatnije, uz odgovarajuću doradu drajvera, Nvidia će moći smanjiti pad performansi kada je omogućen SSAA, ali uostalom, AMD također ima slične mogućnosti za poboljšanje...

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

Ista stvar - prvo provjeravamo jednostavne opcije bez superuzorkovanja:

Drugi test je zanimljiviji s praktične toč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, osim supersamplinga, možete omogućiti i self-shadowing, što otprilike udvostručuje opterećenje video čipa. Ovaj način rada naziva se "High", a normalni način naziva se "Low".

U našim Direct3D 9 testovima za mapiranje paralakse, ATI-jeva (a potom i AMD-ova) rješenja bila su tradicionalno 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 s “Low” na “High” način 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 modu "High" za potonje relativno niski. Općenito, prema rezultatima provedenih testova još jednom možemo zabilježiti pobjedu Nvidijinih rješenja u svim cjenovnim rangovima, a dobitak je posebno vidljiv u gornjem segmentu.

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

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

Omogućavanje supersamplinga utječe gotovo isto kao i u prethodnom slučaju - kartice bazirane na AMD R6xx čipovima poboljšavaju svoje performanse u odnosu na Nvidia G8x. Čudno je da je Nvidia pala čak 4 puta (jednako teoretskom), dok je AMD - samo 3 puta. Unatoč 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 (izračunavanje)

Sljedećih nekoliko testova pixel shadera sadrži minimum uzoraka teksture, to je učinjeno kako bi se smanjio utjecaj brzine TMU-a na ukupnu brzinu. Ali vrlo velik 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. Utjecaj svih ostalih izvršnih jedinica je minimiziran.

Prvi test iz matematike 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, ukupno više od tisuću instrukcija po pikselu.

Prema rezultatima našeg istraživanja korištenjem prethodne verzije paketa sintetičkih testova Direct3D 9, u računalno složenim zadacima AMD arhitektura pokazuje se jako dobro, sva njihova rješenja su ispred konkurencije. No, 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. Općenito, ako uzmemo u obzir stvarne i procijenjene cijene svih rješenja, pobjeda je ovoga puta za AMD.

Izvedba rješenja srednjeg ranga oba proizvođača u ovom testu je oko dva puta niža od performansi najbližih top-end rješenja, low-end čipovi su čak dvaput lošiji. Tradicionalni omjer promatran je po tko zna koji put, potpuno u skladu s rezom s gledišta teorije, uzimajući u obzir taktne frekvencije. Općenito, nije sve tako loše s DirectX 10 čipovima srednje i niže razine ... Iako, u svakom slučaju, ne govorimo o maksimalne postavke budućim D3D 10 igricama, a 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 tisuću instrukcija ukupno.

Pogledajmo što se promijenilo s povećanjem opterećenja:

Odmah napominjemo da punopravna usporedba u testu "Fire" ne radi - postoji očita pogreška u upravljačkim programima AMD-a, koja ne dopušta njihovim proizvodima da pokažu rezultate koji odgovaraju stvarnoj snazi. Prije izvlačenja zaključaka, pričekajmo popravke u upravljačkim programima.

Razlika između mlađih verzija G80 i starijeg G84 opet se pokazala nešto više od dva puta, što otprilike odgovara razlici u frekvencijama i broju izvedbenih jedinica. Isto vrijedi i za low-end Nvidia čip.

Geometrijski testovi shadera

RightMark3D 2.0 uključuje dva testa brzine geometrijskog shadera različitim uvjetima... Prva opcija se zove "Galaxy", tehnika je slična "točkastim spriteovima". prethodne verzije Direct3D. Animira sustav čestica na GPU-u, geometrijski shader iz svake točke (od 0,5 do 2,0 milijuna ukupno) stvara četiri vrha koji tvore česticu (kvad ekspanzija). Po svemu sudeći, slični algoritmi će se naširoko 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 konačna slika je potpuno ista, samo se mijenjaju metode obrade scene. Parametar "GS load" određuje u kojem shaderu se izvode izračuni - u vršnom ili geometrijskom, ali je broj izračuna isti u oba slučaja.

Razmotrimo prvu varijantu Galaxy testa, s izračunima u vertex shaderu, za tri razine geometrijska složenost:

Može se vidjeti da se omjer brzina s različitom geometrijskom složenošću scena pokazao približno jednakim za sve uvjete, samo se apsolutne vrijednosti razlikuju. Izvedba koju pokazuju sva rješenja u potpunosti odgovara broju bodova, sa svakim korakom pad FPS-a je oko dva puta. Nvidia video kartice u takvim uvjetima osjećaju se malo bolje, pokazujući bolje rezultate u svim uspoređenim parovima: Geforce 8800 GTS je brži od HD 2900 XT, Geforce 8600 GT je brži od HD 2600 XT, Geforce 8500 GT je brži od HD 2600 PRO. Razlika, iako mala, postoji.

Zadatak nije tako težak moderne video kartice, vrhunska rješenja malo su nadmašila video kartice srednje razine, razlika ne doseže ni dva puta. Iako low-end zaostaje za srednjim svejedno dva puta. Možda će se pri prijenosu dijela izračuna u geometrijski shader situacija promijeniti, kao kod uspoređivanja rješenja različitih proizvođača i segmentima cijena. Sada ćemo to provjeriti.

Doista, došlo je do nekih promjena. Sada rješenja temeljena na G8x čipovima ne nadmašuju uvijek rješenja temeljena na R6xx u svim slučajevima s 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 nema razlike između brojki za Geforce 8800 GTX i GTS, iako je broj aktivnih izvršnih jedinica kod ovih čipova različit. Kao rezultat toga, AMD nastavlja gubiti, što je malo čudno, s obzirom na visoku učinkovitost izvršavanja vertex shadera od strane njihovih čipova zabiljež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 pokazuje korištenje nekoliko zanimljivih tehnika odjednom: instanciranje, izlaz toka, opterećenje međuspremnika. Koristi se dinamičko stvaranje geometrije crtanjem u dva međuspremnika, ovaj test također koristi nova prilika DX10 - stream izlaz. Prvi korišteni shader generira smjer zraka, brzinu i smjer njihovog rasta, ti se podaci stavljaju u međuspremnik koji drugi shader koristi za renderiranje. Za svaku točku zraka izgrađeno je 14 vrhova u krug, ukupno do milijun izlaznih točaka.

Nova vrsta shader programa koristi se za generiranje "zraka", a s parametrom "GS load" postavljenim na "Heavy" - također za njihovo renderiranje. Odnosno, u "Balanced" načinu rada, geometrijski shaderi se koriste samo za kreiranje i "rast" zraka, izlaz se izvodi pomoću "instanciranja", a u "Heavy" modu, geometrijski sjenilac također je uključen u izlaz. Pogledajmo prvo svjetlosni način rada:

Rezultati različitih video kartica međusobno su praktički isti, bez obzira na geometrijsku složenost scene. Izvedba se dobro mjeri i gotovo odgovara teoretskim parametrima, prema kojima bi svaka sljedeća razina "broja poligona" trebala biti dvostruko sporija.

Velika prednost Nvidia video kartica je i ovoga puta, kada opterećenje geometrijskih shadera nije tako veliko. RADEON HD 2900 XT je inferioran čak i od GeForce 8600 GT, a niže rješenje iz Nvidije je nešto ispred HD 2600 XT. O G80 ne treba govoriti – daleko su ispred, a performanse su im očito ograničene nečim drugim, budući da ne pobjeđuju previše u odnosu na G84.

Zanimljivo je da su performanse HD 2400 XT gotovo jednake onima HD 2600 PRO i obje brojke su daleko iza HD 2600 XT, što u prijašnjim 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 usporediti brojke dobivene 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 puno brže od Nvidia G8x čipova, imaju prednost od 2 puta ili čak i više. Izvedba ovih testova uvelike ovisi o složenosti geometrijskih shadera. AMD čipovi ne obavljaju samo posao brže odluke Nvidia, ova razlika raste kako geometrija postaje složenija. Ispada da što je teži posao geometrijskom shaderu, to će R6xx biti brži u usporedbi s G8x.

No, uspoređujući rezultate u različitim modovima, kada su različite vrste shadera uključene u izlaz, treba napomenuti da su Nvidijini rezultati u "Balanced" bolji nego u "Heavy" od AMD-a. Unatoč č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 najbolju izvedbu od obje.

Prilikom prelaska s korištenja "instanciranja" na geometrijski shader za izlaz, Nvidia video kartice gube puno u performansama, od 2 do 6 puta. Štoviše, što je čip mlađi, veća je 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 programeri slobodno biraju svoj put, a ako koriste vrhove za svoje zadatke će biti profitabilnije, možda će to učiniti.

Razlika između brzine u "Balanced" i "Heavy" modovima za različite čipove iste linije također je iznimno zanimljiva. Smiješna situacija s usporedbom HD 2400 XT i HD 2600 PRO se pogoršala - sada je mlađi čip čak i bolji od starijeg. A "krivnja" je ovdje, najvjerojatnije, više visoka frekvencija junior rješenje i postavljanje trokuta ograničenja brzine. Nvidia to nema, svi čipovi su pokazali rezultate striktno prema lineupu - G84 je 2-3 puta sporiji od G80, a G86 4-6 puta sporiji. Postoji još jedna misterija povezana s HD 2600 PRO, koja se ne može objasniti - samo ova video kartica iz AMD-a gubi u performansama kada promijeni način iz "Balanced" u "Heavy" u načinu rada s velikom količinom geometrije.

Treba napomenuti i bug u AMD drajverima, koji se pojavljuje samo na HD 2900 XT, uzrokujući izostanak prikazane slike u najtežem načinu rada "Hyperlight" testa i anomalnu najbolji rezultatšto se ne može zamijeniti ispravnom. 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. S 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 igre kojih je, nažalost, još uvijek vrlo malo.

Brzina dohvaćanja tekstura iz vrhovih shadera

Testovi Vertex Texture Fetch mjere brzinu veliki broj uzorci teksture iz sjenila vrhova. Testovi su međusobno slični, u teoriji bi omjer brzina testova "Zemlja" i "Valovi" trebao biti približno isti. U oba testa koristi se na temelju podataka iz uzoraka teksture. Razlika je u tome što test Waves koristi uvjetne skokove, dok Earth test ne koristi.

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

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

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

Omjer između performansi gornjih rješenja i video kartica srednje i niže razine ostaje isti, do 2-3 puta između prve i 2-3 puta između druge. Jednostavno je previše zanimljivo velika razlika u izvedbi između HD 2600 PRO i HD 2600 XT, to se ne može objasniti različitim brojem teksturnih jedinica (TMU), budući da se koriste isti čipovi. Na rezultate ispitivanja može utjecati propusnost memorije, koja je vrlo različita za PRO i XT varijante.

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

U ovoj varijanti AMD grafičke kartice malo izgubili u brzini u odnosu na svoje suparnike. U svim konkurentskim parovima, pobjednici su Nvidia rješenja s velika količina učinkovito rade teksturne jedinice. Razlika između AMD-a i Nvidije specificirani uvjeti je do 1,5-2 puta. Nvidia GPU-ovi očito su učinkovitiji u dohvaćanju podataka o teksturi, na temelju mjerila i sjenčanja vrhova i piksela.

Da vidimo rezultate drugog VTF testa, zanima me hoće li biti sličnih problema? Waves test ima manji broj uzoraka, ali koristi uvjetne 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 mijenja se 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.

"Valovi" nam ne pokazuju ništa novo, sve je otprilike isto kao u prethodnom testu "Zemlje". Vidi se da neki Nvidijini čipovi (G80 i G86) gube okvire u sekundi s povećanjem složenosti geometrije nešto brže od konkurenata iz AMD-a (R600 i RV630), no Nvidijina rješenja su 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. Općenito, 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, dogodio se debi korištenja RightMark3D 2.0 za istraživanje na našoj stranici. Testovi u svom sastavu pokrivaju gotovo sve aspekte inovacija u Direct3D 10, fleksibilno su podesivi, omogućujući nam da ocijenimo usporedne performanse svih Direct3D 10 linija čipova iz AMD-a i Nvidia-e. Obje unificirane arhitekture ovih tvrtki pokazale su se prilično dobrim u našim novim Direct3D 10 testovima, nisu pronađeni veliki pad performansi, osim u nekoliko slučajeva s očitim greškama u AMD drajverima. Obje obitelji: R6xx i G8x odlikuju se visokim računalnim i teksturnim performansama, 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, trenutno su njihove video kartice u većini slučajeva ispred. Ali u nekim testovima AMD čipovi pokazuju vrhunski rezultati, na primjer, u složenim testovima geometrije i sjenčanja piksela. Prednost AMD čipova u takvim testovima čak raste s povećanjem opterećenja. Dakle, ishod bitke u DirectX 10 igrama još nije određen, nemoguće je sa sigurnošću reći tko će je od suparnika pobijediti. 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 voditi, u drugima - AMD. A to će uvelike ovisiti o programerima te o metodama i algoritmima koje koriste.
  • Pixel Shader 4.0 testovi su pokazali da su Nvidia GPU-i bolji u rukovanju višestrukim dohvaćanjem 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, AMD video kartice dolaze naprijed, može se pretpostaviti da će u aplikacijama s aktivnom upotrebom geometrijskih shadera, ako se pojave u bliskoj budućnosti, čipovi ove tvrtke voditi.
  • Posljednji par RightMark3D 2.0 testova su testovi za brzinu dohvaćanja teksture iz vertex shadera. Rezultati prikazani u njima jasno ukazuju da video 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. To je zbog tradicionalno različite ravnoteže između teksture i računalnih sposobnosti čipova dviju konkurentskih tvrtki.
  • "Smanjivanje" broja shader jedinica, TMU-ova i ROP-ova ima prilično značajan utjecaj na rješenja srednje i niže razine, značajno smanjujući njihovu izvedbu. Jeftine video kartice na trenutke zaostaju za najboljima, najbolje od srednje klase zaostaju 2-3 puta (od HD 2900 XT i Geforce 8800 GTS), a low-end još više - do 4- 8 puta. Kao što potvrđuju rezultati testova igranja, zasad samo Direct3D 9.
  • Na temelju naših rezultata, AMD-ovi upravljački programi za Vista očito su inferiorni u odnosu na Nvidia drajveri... Ako u našim testovima nisu pronađene greške u proizvodima druge tvrtke, tada su AMD-ova rješenja imala dva očita problema: cijela linija čipova u drugom "računskom" testu pixel shadera ("Fire"), kao i vrhunsko rješenje HD 2900 XT u najtežem test modu za brzinu uzorkovanja teksture iz vertex shadera “Earth”. Jako bih želio vjerovati da će ovi nedostaci biti otklonjeni u sljedećim verzijama CATALYST drajvera.

Zahvaljujući početku prodaje procesora AMD Ryzen 5 prije roka (11. travnja), 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ši španjolski kolege iz El Chapuzas Informatico objavili recenziju 6-jezgrene AMD procesor Ryzen 5 1600.

Ovaj procesor ima šest fizičkih jezgri, od kojih svaka ima dvije računske niti, što u konačnici daje dvanaest niti. Procesor ima osnovnu 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 predmemoriju od 16 MB (8 + 8 MB), a svaka jezgra ima 512 KB L2 predmemorije i 64 KB odnosno 32 KB L1 predmemorije instrukcija i podataka. Kao i drugi Ryzen procesori, ovaj čip je smješten u Socket AM4 paketu i ima TDP od 64 W. Preporučena cijena novih artikala za američko tržište je 219 dolara.

Konfiguraciju ispitnog stola koju koriste naši 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: Tiho! Dark Power Pro11 1200 V;
  • SSD diskovi: Kingston SSDNow KC400 128GB i Corsair LX 512GB
  • Sustav hlađenja: Wraith Spire;
  • Operativni sustav: Windows 10 64 bit.

Performanse jedne jezgre Ryzen 5 1600 procesora, očekivano, ne razlikuju se puno od performansi jedne jezgre Ryzena 7 1700X, budući da su izgrađene na istim kristalima silicija, samo šesterojezgreni procesor ima dva jezgre onemogućene.

U višenitnom CPU-Z testovi i wPrime 2.1 (32M) novi proizvod je pokazao sasvim očekivane rezultate, pokazujući vrlo dobru razinu performansi.

U Cinebenchu ​​15, novost je nadmašila ne samo overclockane na 4,9 GHz i povećane za više brzo pamćenje(3600 MHz) skuplji četverojezgreni Intel Core i7-7700K, ali i šestjezgreni Intel Core i7-5930K. Ali u video kodiranju, potonje se pokazalo bržim.

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 od njega neznatno gubi. U većini sintetičkih testova procesor Intel Core i7-6700K pokazao se bržim od oba AMD predstavnika.

Što se tiče igraćih performansi, 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 primijetiti da u Doomu (koristeći OpenGL) i Rise of Tomb Raider (koristeći koristeći DirectX 11) Ryzen 5 1600 znatno je ispred Ryzena 7 1700X.

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

S standardni sustav hlađenja, frekvencija procesora je podignuta na 3,9 GHz, dok je napon jezgre bio 1,36 V. Bit će zanimljivo vidjeti s koliko se novi proizvod može overclockati hlađen tekućinom, i koje će frekvencije poslušati u ekstremnom overclockanju.

Temperatura procesora AMD Ryzen 5 1600 je 39 stupnjeva Celzija tijekom mirovanja, a 62 - 65 stupnjeva Celzija pod opterećenjem. Potrošnja sustava baziranog na novosti u igrama iznosila je 245 W, što je približno jednako potrošnji sustava 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 barem poput samih sintetičkih testova. Glavna ideja na kojoj se temelje je procijeniti ukupnu izvedbu računalnog sustava, a u teoriji ovo je stvarno sjajna ideja.

V savršen svijet Rezultat takvog testa može vam dati jasnu i, što je još važnije, realističnu ideju o tome što biste očekivali od računala, bilo stolnog ili mobilnog, u raznim praktičnim scenarijima - od posla i pregledavanja interneta do multimedijske zabave i igre.

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 naširoko korištene testne programe ova klasa - 3DMark i PCMark iz Futuremarka - već se slučajno našla u epicentru niza skandala. Naravno, ne krivnjom samih programera Futuremarka – razlozi su, prije svega, u različitim pristupima proizvođača da „optimiziraju“ svoju opremu, s čime pametno koriste neke nedostatke u postupcima testiranja i implementiraju umjetno napuhane rezultate, koji se, međutim, tada ne potvrđuju u praksi.

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

Međutim, u nekim slučajevima ova vrsta testa nije primjenjiva s čisto pragmatične točke gledišta - na primjer, kada dolazi sustavi poslovne klase za koje performanse igara nisu kritične. Razlog je taj što igre ostavljaju pogrešan dojam kada su u pitanju moćni strojevi poput Lenovo ThinkPad X1 Carbon ili HP EliteBook 1040. Takvi uređaji namijenjeni su potpuno drugačijem skupu korisnika - ljudima kojima nije stalo da Battlefield 4 može "jahati " na njihovom prijenosnom računalu 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.

Upravo u takvim slučajevima u pomoć priskače “sintetika” – poput PCMarka koji mjeri ukupnu izvedbu cijele konfiguracije. Međutim, to dovodi do nekih posebnosti u pogledu pravilnog tumačenja rezultata, što razni sustavi pokazati u testu.

Studija slučaja: Izravna usporedba igre Lenovo laptop Y50 i HP EliteBook 1040 Business Ultrabook mogu biti zbunjujući. Razlog je taj što su rezultati ova dva sustava slični, no jedan od njih temelji se na prilično moćnom diskretna grafička kartica (NVIDIA GeForce 860M), a drugi na integrirano grafičko rješenje (Intel HD Graphics 4400). Međutim, ako usporedimo njihove performanse u igrama, 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 automobil s potpuno drugom svrhom.

No budući da PCMark uzima u obzir ukupne performanse, oba stroja postižu slične rezultate. U osnovi, test se sastoji od niza različitih zadataka, čija je sveukupna svrha točna (koliko je to moguće) procjena sposobnosti određenog računala da se nosi s uobičajenim, svakodnevnim scenarijima opterećenja. Na primjer, PCMark ima zadatke dizajnirane za procjenu performansi računala u scenarijima kao što su surfanje internetom, rad s uređivač teksta, uređivanje digitalne slike, video chat i casual igre.

Svaki od ovih testova na svoj način opterećuje komponente sustava, dok se ukupna izvedba testiranog sustava izračunava posebnom formulom i formira konačni rezultat.

Međutim, ako želite jasnije razumjeti mogućnosti računala, trebate učiniti dvije stvari: Prvo, pogledajte detaljnu raščlambu rezultata po odjeljcima. Drugo, posjetite web stranicu Futuremarka; tamo ćete pronaći stotine tisuća različitih konfiguracija i možete usporediti performanse vašeg sustava sa strojem sa sličnim, nižim ili višim parametrima.

I još nešto – da ponovim zaključno: rezultate sintetičkih testova, bilo 3DMark ili PCMark, ne treba shvaćati doslovno. Oni su samo dobro mjerilo, jedan od mnogih alata za procjenu performansi računala, pa im ne biste trebali dati previše od velike važnosti... Ako trebate detaljne, opsežne 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čiti izvori) umjesto pomicanja do kraja samo da biste vidjeli sintetičke rezultate usporedbe.

Ugodan dan!

Sintetički testovi

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

Wprime 2.0

Poznati uslužni program za testiranje višejezgrenih procesora određuje njihovu snagu izvodeći određene izračune. Što je manje vremena potrebno za dovršetak testa, to je bolji rezultat.

Najbrži (što i ne čudi – svojom brzinom takta) pokazao se kao glavni procesor današnjeg testa. Neugodno je iznenađeno što je Core i5 2300 zaostajao za i5 760 za gotovo sekundu (na istu frekvenciju). Vjerojatno je učinak bila manja veličina predmemorije treće razine.

Fritz Chess Benchmar

A ovo je test koji utvrđuje performanse procesora obradom raznih šahovskih algoritama. U ovom mjerilu, što više bodova, to je bolji rezultat.

“Stari” Core i5 760 prestigao je sve predstavnike obitelji Sandy Bridge.

WinRAR 3.92

Ovaj arhivar ne treba predstavljati. Izvedba će biti određena brojem KB / s kada se komprimira određene datoteke... Što veće, to bolje.


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

7-Zip 9.13

Još poznati arhivar, koji sam osobno preporučio mnogima (pritiska puno bolje od RAR-a i ZIP-a, dobar je prijatelj višejezgreni procesori i OS x64, plus potpuno besplatno) u dogledno vrijeme. Izvedba se izračunava na isti način kao u prethodnom testu.


Test je proveden u načinu kompresije (prvi graf) i dekompresiji (drugi) datotekama. Jasno se vidi tko je u prednosti i koliko.

Adobe Photoshop CS5

Poznati paket za obradu grafičke datoteke... Nisam uhvatio kako su procesori konkretno testirani (ako imate kakvu 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 S otvoreni izvor 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 i5 2300 u odnosu na i5 760 (da vas podsjetim 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 načinu 1 niti i u nekoliko) u uvjetima 3D renderiranja.


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

H.264 koder 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 dajte mu priliku za pobjedu. Već želim takav procesor (samo hexacor, barem), bolje odmah overclockati na 4,5-5 GHz. A onda na Atomu" e i Q9550, kodiranje videa je više nije tako radostan kao prije

Ne sviđa mi se kada netko pokušava koristiti ručno izrađene uzorke koda za procjenu sposobnosti statičkog analizatora koda. Sada dalje 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. Projekt itc-benchmarks je mjerila statičke analize iz Toyote ITC.

Nije mi se svidjelo to nakon čitanja članka, imam dojam da su analizatori Cppcheck i PVS-Studio približno jednaki u svojim mogućnostima. Iz članka proizlazi da je jedan analizator bolji 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 Cppchecka. I općenito, ovo nije "mišljenje", znam to!

Međutim, kako izvana nije jasno da je PVS-Studio 10 puta bolji od Cppchecka, onda bismo trebali pokušati razumjeti razlog. Odlučio sam pogledati upravo ove itc-benchmarkove i shvatiti zašto PVS-Studio nije pokazao dobre rezultate na ovoj testnoj bazi.

Što sam dalje shvaćao, to sam se više iznervirao. I jedan me primjer potpuno debalansirao, a o tome ć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 osobno 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 vrednovati. 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.

Pa što se ispostavilo da je PVS-Studio slabiji od Cppchecka u ovom primjeru? Ne, samo je jači!

Analizator PVS-Studio shvaća da je ovaj kod napisan namjerno i da ovdje nema greške.

Postoje situacije kada je sličan kod napisan posebno da izazove iznimku kada se dereferencira nulti pokazivač. To se može pronaći u testovima ili u određenim odjeljcima koda. Takav kod smo vidjeli mnogo puta. Na primjer, evo kako bi to moglo izgledati u stvarnom 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 iznimaka, 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. A naziv funkcije govori analizatoru da ovdje postoji razlog za "null pokazivač".

U takvim slučajevima, dijagnostika V522 implementira iznimku A6. Pod nju spada i sintetička funkcija. null_pointer_001... Evo koliko je opasna iznimka A6:

Dereferenciranje varijable je u funkciji čiji naziv sadrži jednu od riječi:

  • pogreška
  • zadano
  • sudar
  • null
  • test
  • kršenje
  • bacanje
  • iznimka
U ovom slučaju, varijabli je dodijeljena 0 u gornjem retku.

Sintetički test u potpunosti je zadovoljio ovu iznimku. Prvo, postoji riječ "null" u nazivu funkcije. Drugo, dodjela nule varijabli događa se točno u prethodnom retku. Iznimka je otkrila lažni kod. A kod stvarno nije stvaran, to je sintetički test.

Zbog ovih nijansi ne volim sintetičke testove!

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

Void null_pointer_006 () (int * p; p = (int *) (intptr_t) rand (); * p = 1; / * Alat bi trebao otkriti ovaj redak kao pogrešku * / / * GREŠKA: NULL dereferenciranje pokazivača * /)
Funkcija rand može vratiti 0, što tada postaje NULL. PVS-Studio analizator još ne zna što može vratiti rand te 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 kamo otići, morat ćete upisati analizator datotekom kako bi bolje funkcionirao na dotičnoj testnoj bazi. Ovo je neophodna mjera, budući da se takvi testni paketi koriste za ocjenjivanje analizatora.

Ali nemojte se bojati. 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 neki smisao.

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

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

Svjestan sam stvarnih problema s programiranjem. Na primjer, riječ je o pogreškama u pisanju koje otkrivamo u stotinama, recimo, V501 dijagnostike. Zanimljivo, u itc-benchmarkovima nisam primijetio niti jedan test gdje se provjeravalo može li analizator otkriti tipografsku pogrešku tipa "if (a.x == a.x)". Niti jedan test!

Stoga, itc-benchmarks zanemaruje mogućnosti parsera za pronalaženje tipografskih pogrešaka. A čitatelji naših članaka znaju koliko su te pogreške česte. Ali sadrži, po mom mišljenju, glupe testne slučajeve 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 prelijevanja niza:

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

Istodobno, znam da je u ozbiljnom projektu lako pronaći tipografsku 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 pogreška je PVS-Studio analizator

Vrhunski povezani članci