[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:figure:ru":3,"public-menus:all":45,"post:why-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained:ru":531,"related:post:why-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained:ru:1":1743},{"statusCode":4,"data":5,"message":44},200,{"tenantId":6,"lang":7,"defaultLang":8,"siteUrl":9,"contactEmail":10,"brandName":11,"logoUrl":12,"siteName":11,"siteDescription":13,"ogImage":14,"robotsIndex":15,"socialLinks":14,"reservedSlugs":14,"seoPolicy":16},"figure","ru","en","https:\u002F\u002Ffigure.rocks","info@stajic.de","Figure Rocks","\u002Ffavicon-32x32.png","",null,true,{"branding":17,"relatedContent":18,"crossDomainLinks":19},{"logoUrl":12},{"enabled":15},[20,23,26,29,32,35,38,41],{"url":21,"label":22,"isActive":15,"showInFooter":15,"includeInSameAs":15},"https:\u002F\u002Floving.rocks","loving.rocks",{"url":24,"label":25,"isActive":15,"showInFooter":15,"includeInSameAs":15},"https:\u002F\u002Fstajic.de","stajic.de",{"url":27,"label":28,"isActive":15,"showInFooter":15,"includeInSameAs":15},"https:\u002F\u002Fbazify.com","bazify.com",{"url":30,"label":31,"isActive":15,"showInFooter":15,"includeInSameAs":15},"https:\u002F\u002Fbazify.de","bazify.de",{"url":33,"label":34,"isActive":15,"showInFooter":15,"includeInSameAs":15},"https:\u002F\u002F2mesta.com","2mesta.com",{"url":36,"label":37,"isActive":15,"showInFooter":15,"includeInSameAs":15},"https:\u002F\u002F2mesta.de","2mesta.de",{"url":39,"label":40,"isActive":15,"showInFooter":15,"includeInSameAs":15},"https:\u002F\u002Fbazify.at","bazify.at",{"url":42,"label":43,"isActive":15,"showInFooter":15,"includeInSameAs":15},"https:\u002F\u002Fweb-hoch3.de","web-hoch3.de","Portal settings resolved",[46],{"id":47,"name":48,"location":49,"isActive":15,"isDefault":15,"items":50},2,"Main Menu","sidebar",[51,65,189,282,358,424],{"id":52,"title":53,"url":61,"target":62,"icon":63,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":64},"1",{"de":54,"en":55,"es":56,"fr":57,"it":55,"ru":58,"sr":59,"zh":60},"Startseite","Home","Inicio","Accueil","Главная","Početna","首页","\u002F","_self","i-lucide-home",[],{"id":66,"title":67,"url":76,"target":62,"icon":77,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":78},"3",{"de":68,"en":69,"es":70,"fr":71,"it":72,"ru":73,"sr":74,"zh":75},"Spiele","Games","Juegos","Jeux","Giochi","Игры","Igre","游戏","\u002Fgames","i-lucide-gamepad-2",[79,92,107,121,135,148,162,176],{"id":80,"title":81,"url":76,"target":62,"icon":90,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":91},"3-1",{"de":82,"en":83,"es":84,"fr":85,"it":86,"ru":87,"sr":88,"zh":89},"Spiele-Hub","Games Hub","Centro de juegos","Hub de jeux","Hub Giochi","Игровой центр","Centar za igre","游戏中心","i-lucide-layout-grid",[],{"id":93,"title":94,"url":103,"target":62,"icon":104,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":106},"1-1",{"de":95,"en":96,"es":97,"fr":98,"it":99,"ru":100,"sr":101,"zh":102},"Neu & Angesagt","New & Trending","Novedades & Tendencias","Nouveautés & Tendances","Novità & Tendenze","Новинки & тренды","Novo & Popularno","新品 & 热门","\u002Fnews\u002Fgaming-news","i-lucide-sparkles","custom",[],{"id":108,"title":109,"url":118,"target":62,"icon":119,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":120},"1-2",{"de":110,"en":111,"es":112,"fr":113,"it":114,"ru":115,"sr":116,"zh":117},"Angebote","Deals","Ofertas","Offres","Offerte","Акции","Ponude","优惠","\u002Fdeals","i-lucide-badge-percent",[],{"id":122,"title":123,"url":132,"target":62,"icon":133,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":134},"1-3",{"de":124,"en":125,"es":126,"fr":127,"it":128,"ru":129,"sr":130,"zh":131},"Release-Kalender","Release Calendar","Calendario de lanzamientos","Calendrier des sorties","Calendario delle uscite","Календарь релизов","Kalendar izdanja","发布日历","\u002Freleases","i-lucide-calendar-days",[],{"id":136,"title":137,"url":145,"target":62,"icon":146,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":147},"3-2",{"de":138,"en":139,"es":140,"fr":141,"it":142,"sr":143,"zh":144},"amiibo-kompatible Spiele","amiibo-Compatible Games","Juegos compatibles con Amiibo","Jeux compatibles Amiibo","Giochi compatibili con amiibo","Amiibo kompatibilne igre","Amiibo 兼容游戏","\u002Freference\u002Fcompatibility","i-lucide-check-circle-2",[],{"id":149,"title":150,"url":159,"target":62,"icon":160,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":161},"3-3",{"de":151,"en":152,"es":153,"fr":154,"it":155,"ru":156,"sr":157,"zh":158},"Wie amiibo funktionieren","How amiibo work","Cómo funcionan los Amiibo","Comment fonctionnent les Amiibo","Come funzionano gli Amiibo","Как работают Amiibo","Kako Amiibo rade","Amiibo 如何运作","\u002Fgames\u002Fhow-amiibo-unlocks-work","i-lucide-puzzle",[],{"id":163,"title":164,"url":173,"target":62,"icon":174,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":175},"3-4",{"de":165,"en":166,"es":167,"fr":168,"it":169,"ru":170,"sr":171,"zh":172},"Beste Amiibo pro Spiel","Best amiibo per Game","Mejores Amiibo por juego","Meilleurs Amiibo par jeu","Migliori Amiibo per gioco","Лучшие Amiibo по играм","Najbolji Amiibo po igri","各游戏最佳 Amiibo","\u002Fgames\u002Fbest-amiibo-per-game","i-lucide-award",[],{"id":177,"title":178,"url":186,"target":62,"icon":187,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":188},"3-5",{"de":179,"en":180,"es":181,"fr":182,"it":183,"ru":184,"sr":185},"Freischaltbares & Belohnungen","Unlockables & Rewards","Desbloqueables & Recompensas","Déblocables & Récompenses","Sbloccabili & Ricompense","Разблокировки & награды","Otključavanja & nagrade","\u002Fgames\u002Funlocks-and-benefits","i-lucide-gift",[],{"id":190,"title":191,"url":199,"target":62,"icon":200,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":201},"4",{"de":192,"en":193,"es":194,"it":195,"ru":196,"sr":197,"zh":198},"Sammeln","Collecting","Coleccionismo","Collezionismo","Коллекционирование","Kolekcionarstvo","收藏","\u002Fcollecting","i-lucide-gem",[202,213,227,240,254,268],{"id":203,"title":204,"url":211,"target":62,"icon":90,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":212},"4-1",{"de":205,"en":206,"fr":207,"it":208,"ru":209,"zh":210},"Sammel-Hub","Collecting Hub","Hub de collecte","Hub di raccolta","Центр сбора","收藏中心","\u002Famiibo\u002Fcollecting",[],{"id":214,"title":215,"url":224,"target":62,"icon":225,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":226},"4-2",{"de":216,"en":217,"es":218,"fr":219,"it":220,"ru":221,"sr":222,"zh":223},"Kaufberatung","Buying Guide","Guía de compra","Guide d'achat","Guida all'acquisto","Гид покупателя","Vodič za kupovinu","购买指南","\u002Famiibo-library\u002Famiibo-buying-smart","i-lucide-shopping-bag",[],{"id":228,"title":229,"url":237,"target":62,"icon":238,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":239},"4-3",{"de":230,"en":230,"es":231,"fr":232,"it":233,"ru":234,"sr":235,"zh":236},"Fake vs Real","Falso vs. Real","Faux vs Vrai","Falso vs Vero","Фейк vs Оригинал","Lažno vs Pravo","真假对比","\u002Famiibo-library\u002Famiibo-buying-smart\u002Favoid-fake-listings","i-lucide-scan",[],{"id":241,"title":242,"url":251,"target":62,"icon":252,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":253},"4-4",{"de":243,"en":244,"es":245,"fr":246,"it":247,"ru":248,"sr":249,"zh":250},"Aufbewahrung & Präsentation","Storage & Display","Almacenamiento & exhibición","Rangement & Présentation","Contenitori & Esposizione","Хранение & витрины","Odlaganje & izlaganje","存储 & 展示","\u002Famiibo-library\u002Famiibo-care-and-storage","i-lucide-box",[],{"id":255,"title":256,"url":265,"target":62,"icon":266,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":267},"4-5",{"de":257,"en":258,"es":259,"fr":260,"it":261,"ru":262,"sr":263,"zh":264},"Preisübersicht","Price Guide","Guía de precios","Guide des prix","Guida ai prezzi","Гид по ценам","Cenovnik","价格指南","\u002Fcollections\u002Fprice-guide","i-lucide-bar-chart-3",[],{"id":269,"title":270,"url":279,"target":62,"icon":280,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":281},"4-6",{"de":271,"en":272,"es":273,"fr":274,"it":275,"ru":276,"sr":277,"zh":278},"Raritäten","Rare Finds","Hallazgos únicos","Trouvailles rares","Pezzi rari","Редкие находки","Retki nalazi","稀有发现","\u002Fcollections\u002Frare-and-notable","i-lucide-trophy",[],{"id":283,"title":284,"url":292,"target":62,"icon":293,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":294},"5",{"de":285,"en":286,"es":287,"fr":286,"it":288,"ru":289,"sr":290,"zh":291},"Technik","Tech","Tecnología","Tecnologia","Технологии","Tehnologija","科技","\u002Ftech","i-lucide-cpu",[295,306,318,331,344],{"id":296,"title":297,"url":292,"target":62,"icon":90,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":305},"5-1",{"de":298,"en":298,"es":299,"fr":300,"it":301,"ru":302,"sr":303,"zh":304},"Tech Hub","Centro tecnológico","Hub Tech","Hub Tecnologico","Технохаб","Tehnološki centar","科技中心",[],{"id":307,"title":308,"url":315,"target":62,"icon":316,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":317},"5-2",{"de":309,"en":310,"fr":311,"it":312,"ru":313,"zh":314},"Audio- & Mikrofonqualität","Audio & Mic Quality","Qualité audio & micro","Qualità audio & mic","Качество звука & микрофона","音频 & 麦克风质量","\u002Fgear\u002Faudio","i-lucide-mic",[],{"id":319,"title":320,"url":328,"target":62,"icon":329,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":330},"5-3",{"de":321,"en":322,"es":323,"fr":324,"it":325,"sr":326,"zh":327},"Controller & Zubehör","Controllers & Accessories","Mandos & accesorios","Manettes & accessoires","Controller & Accessori","Kontroleri & dodatna oprema","控制器 & 配件","\u002Fgear\u002Fcontrols","i-lucide-joystick",[],{"id":332,"title":333,"url":341,"target":62,"icon":342,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":343},"5-4",{"de":334,"en":335,"es":336,"fr":337,"it":338,"ru":339,"sr":340},"Displays & Aufnahme","Displays & Capture","Pantallas & Captura","Écrans & Capture","Display & Acquisizione","Дисплеи & Захват","Ekrani & snimanje","\u002Fgear\u002Fdisplays","i-lucide-monitor",[],{"id":345,"title":346,"url":355,"target":62,"icon":356,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":357},"5-5",{"de":347,"en":348,"es":349,"fr":350,"it":351,"ru":352,"sr":353,"zh":354},"Netzwerkstabilität","Network Stability","Estabilidad de la red","Stabilité du réseau","Stabilità della rete","Стабильность сети","Stabilnost mreže","网络稳定性","\u002Fplaybooks\u002Fnetwork-stability","i-lucide-wifi",[],{"id":359,"title":360,"url":368,"target":62,"icon":369,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":370},"6",{"de":361,"en":361,"es":362,"fr":363,"it":364,"ru":365,"sr":366,"zh":367},"Shop","Tienda","Boutique","Negozio","Магазин","Prodavnica","商店","\u002Fshop","i-lucide-shopping-cart",[371,383,391,399,412],{"id":372,"title":373,"url":368,"target":62,"icon":381,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":382},"6-1",{"de":374,"en":375,"es":376,"fr":377,"ru":378,"sr":379,"zh":380},"Shop-Hub","Shop Hub","Centro de compras","Espace Boutique","Центр магазина","Centar za kupovinu","购物中心","i-lucide-store",[],{"id":384,"title":385,"url":388,"target":62,"icon":389,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":390},"6-2",{"de":386,"en":386,"es":387,"fr":387,"it":387,"sr":387,"zh":387},"amiibo","Amiibo","\u002Famiibo-shop","i-lucide-scan-line",[],{"id":392,"title":393,"url":396,"target":62,"icon":397,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":398},"6-3",{"de":394,"en":394,"es":394,"fr":394,"it":394,"ru":394,"sr":394,"zh":395},"LEGO","乐高","\u002Flego-shop","i-lucide-blocks",[],{"id":400,"title":401,"url":409,"target":62,"icon":410,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":411},"6-4",{"de":402,"en":403,"es":404,"fr":405,"it":406,"sr":407,"zh":408},"Figuren & Sammlerstücke","Figures & Collectibles","Figuras & Coleccionables","Figurines & Objets de collection","Figure & Collezionismo","Figure & kolekcionarstvo","手办 & 收藏品","\u002Fshop\u002Ffigures","i-lucide-package",[],{"id":413,"title":414,"url":421,"target":62,"icon":422,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":423},"6-5",{"de":415,"en":415,"fr":416,"it":417,"ru":418,"sr":419,"zh":420},"Gaming Gear","Équipement gaming","Accessori gaming","Игровое снаряжение","Gejming oprema","游戏装备","\u002Fgaming-gear-shop","i-lucide-headphones",[],{"id":425,"title":426,"url":427,"target":62,"icon":389,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":428},"2",{"de":386,"en":386,"es":386,"fr":386,"it":386,"ru":386,"sr":386,"zh":386},"\u002Famiibo",[429,440,447,461,475,489,503,517],{"id":430,"title":431,"url":427,"target":62,"icon":90,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":439},"2-1",{"de":432,"en":433,"es":434,"fr":435,"it":435,"ru":436,"sr":437,"zh":438},"amiibo-Hub","amiibo Hub","Centro amiibo","Hub amiibo","Хаб amiibo","amiibo centar","amiibo 中心",[],{"id":441,"title":442,"url":444,"target":62,"icon":445,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":446},"1772724791061",{"de":443,"en":443},"Franchise","\u002Famiibo\u002Ffranchise","i-lucide-star",[],{"id":448,"title":449,"url":458,"target":62,"icon":459,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":460},"2-3",{"de":450,"en":451,"es":452,"fr":453,"it":454,"ru":455,"sr":456,"zh":457},"Region & Verpackung (EU\u002FUS\u002FJP)","Region & Packaging (EU\u002FUS\u002FJP)","Región y embalaje (UE\u002FEE. UU.\u002FJP)","Région & Emballage (UE\u002FUS\u002FJP)","Regione & Confezione (EU\u002FUS\u002FJP)","Регион & упаковка (EU\u002FUS\u002FJP)","Region & pakovanje (EU\u002FUS\u002FJP)","地区 & 包装 (EU\u002FUS\u002FJP)","\u002Famiibo-library\u002Famiibo-editions-and-regions","i-lucide-globe",[],{"id":462,"title":463,"url":472,"target":62,"icon":473,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":474},"2-4",{"de":464,"en":465,"es":466,"fr":467,"it":468,"ru":469,"sr":470,"zh":471},"Schnellidentifikations-Checkliste","Fast Identification Checklist","Lista de identificación rápida","Liste d'identification rapide","Checklist identificazione rapida","Чек-лист быстрой идентификации","Kontrolna lista za brzu identifikaciju","快速识别清单","\u002Famiibo\u002Fidentify-checklist","i-lucide-list-checks",[],{"id":476,"title":477,"url":486,"target":62,"icon":487,"isActive":15,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":488},"2-6",{"de":478,"en":479,"es":480,"fr":481,"it":482,"ru":483,"sr":484,"zh":485},"Tipps für Sealed-Sammlungen","Sealed Collection Tips","Consejos de colección sellada","Conseils collection scellée","Consigli collezione sigillata","Советы по коллекции Sealed","Saveti za zapečaćene kolekcije","密封收藏贴士","\u002Famiibo\u002Fsealed-tips","i-lucide-shield-check",[],{"id":490,"title":491,"url":500,"target":62,"icon":501,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":502},"2-5",{"de":492,"en":493,"es":494,"fr":495,"it":496,"ru":497,"sr":498,"zh":499},"Zustand & Bewertung","Condition & Grading","Estado & Graduación","État & Évaluation","Condizioni & Valutazione","Состояние & Оценка","Stanje & ocenjivanje","品相与分级","\u002Famiibo-library\u002Famiibo-condition-and-grading","i-lucide-badge-check",[],{"id":504,"title":505,"url":514,"target":62,"icon":515,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":516},"2-2",{"de":506,"en":507,"es":508,"fr":509,"it":510,"ru":511,"sr":512,"zh":513},"Ausgaben & Nachdrucke","Editions & Reprints","Ediciones & Reimpresiones","Éditions & Réimpressions","Edizioni & ristampe","Издания & переиздания","Izdanja & reizdanja","版本 & 重印","\u002Famiibo\u002Fcollecting\u002F","i-lucide-layers",[],{"id":518,"title":519,"url":528,"target":62,"icon":529,"isActive":15,"type":105,"productId":14,"categoryId":14,"shopCategoryId":14,"articleId":14,"pageId":14,"portfolioId":14,"children":530},"2-7",{"de":520,"en":521,"es":522,"fr":523,"it":524,"ru":525,"sr":526,"zh":527},"Nachdruck-Timeline","Reprint Timeline","Cronología de reimpresión","Chronologie des réimpressions","Cronologia ristampe","Хронология переизданий","Hronologija reprinta","重印时间轴","\u002Freference\u002Ftimelines\u002Famiibo-reprint-timeline","i-lucide-timer",[],{"statusCode":4,"data":532,"message":1742},{"id":533,"title":534,"slug":535,"content":536,"contentJson":537,"excerpt":1078,"featuredImage":1079,"featuredImageAlt":1080,"featuredImageCaption":14,"featuredImageTitle":14,"featuredImageCopyright":14,"featuredImageAuthor":14,"featuredImageSourceUrl":14,"featuredImageLicense":14,"featuredImageIsAiGenerated":821,"status":1081,"publishedAt":1082,"createdAt":1083,"updatedAt":1084,"seoLocalePaths":1085,"categories":1094,"author":1107,"translations":1111},"439","Почему 120 FPS всё ещё могут ощущаться плохо: время кадра, 1% низких и микрофризы — объяснение","why-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained","\u003Cp>Игра может показывать 120, 144 или даже 200 FPS и при этом ощущаться рваной. Причина проста: средняя частота кадров говорит о том, сколько кадров было создано за определённое время, но не о том, поступали ли эти кадры равномерно. Несколько длинных кадров могут вызвать заметные подтормаживания или микрорывки, даже когда средний показатель FPS выглядит отлично.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--info my-6 rounded-xl border p-5 border-blue-300 bg-blue-50 dark:border-blue-900 dark:bg-blue-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Прямой ответ\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">\u003Cstrong>Высокий средний FPS не гарантирует плавный геймплей.\u003C\u002Fstrong> Плавность зависит от стабильности времени кадра: насколько равномерно поступают кадры. Чтобы диагностировать рывки, смотрите на время кадров, перцентильные метрики или метрики низкого FPS, а также на тайминги CPU\u002FGPU — а не только на средний FPS.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Caside class=\"editorjs-callout editorjs-callout--note my-6 rounded-xl border p-5 border-gray-300 bg-gray-50 dark:border-gray-700 dark:bg-gray-900\u002F40\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Модель, используемая в этой статье\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Треугольник плавности и Тест стабильности времени кадра ниже — это практические модели Figure Rocks. Это не официальная терминология Intel, NVIDIA или Microsoft.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Cnav class=\"editorjs-toc\" data-editorjs-toc=\"true\" aria-label=\"Содержание\">\u003Cstrong class=\"editorjs-toc__title\">Содержание\u003C\u002Fstrong>\u003Col class=\"editorjs-toc__list editorjs-toc__list--depth-0\">\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-5\" class=\"editorjs-toc__link\">FPS — это среднее; время кадра — это ритм\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-9\" class=\"editorjs-toc__link\">Треугольник плавности\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-12\" class=\"editorjs-toc__link\">Почему средний FPS скрывает рывки\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-15\" class=\"editorjs-toc__link\">Что пытаются показать 1% низких\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-20\" class=\"editorjs-toc__link\">Графики времени кадра часто полезнее одного сводного числа\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-24\" class=\"editorjs-toc__link\">Тест стабильности времени кадра\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-26\" class=\"editorjs-toc__link\">Узкое место CPU и узкое место GPU выглядят не одинаково\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-31\" class=\"editorjs-toc__link\">Почему ограничение частоты кадров иногда ощущается плавнее максимального FPS\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-35\" class=\"editorjs-toc__link\">Распространённые причины подтормаживаний при высоком FPS\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-37\" class=\"editorjs-toc__link\">Компиляция шейдеров — особый случай\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-41\" class=\"editorjs-toc__link\">VRR не исправляет плохое время кадров\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-44\" class=\"editorjs-toc__link\">Почему 0,1% низких значений могут стать шумными\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-48\" class=\"editorjs-toc__link\">Практический протокол бенчмарка\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-50\" class=\"editorjs-toc__link\">Оценочная карта стабильности времени кадров\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-52\" class=\"editorjs-toc__link\">Что могло бы изменить этот ответ?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-55\" class=\"editorjs-toc__link\">Ограничения\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-58\" class=\"editorjs-toc__link\">Заключение\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-61\" class=\"editorjs-toc__link\">Часто задаваемые вопросы\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-63\" class=\"editorjs-toc__link\">Глоссарий\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-65\" class=\"editorjs-toc__link\">Основные источники\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fnav>\n\u003Ch2 id=\"section-5\">FPS — это среднее; время кадра — это ритм\u003C\u002Fh2>\n\u003Cp>FPS показывает, сколько кадров завершается за секунду. Время кадра показывает, сколько времени занимает отдельный кадр.\u003C\u002Fp>\n\u003Cp>Примерное преобразование простое: время кадра в миллисекундах приблизительно равно 1000, делённому на FPS. При 60 FPS бюджет кадра составляет около 16,7 мс. При 120 FPS — около 8,3 мс. При 144 FPS — около 6,9 мс.\u003C\u002Fp>\n\u003Cp>Но эти числа имеют смысл только в том случае, если доставка кадров достаточно стабильна. Последовательность 7 мс, 7 мс, 7 мс, 35 мс, 7 мс, 7 мс всё ещё может в среднем давать высокий FPS, создавая при этом заметный рывок.\u003C\u002Fp>\n\u003Ch2 id=\"section-9\">Треугольник плавности\u003C\u002Fh2>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Три разные вещи определяют, насколько быстрой ощущается игра\u003C\u002Fh3>\u003Cdiv class=\"flex flex-col sm:flex-row gap-3\">\u003Cdiv class=\"editorjs-process__step min-w-0 flex-1 rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">1\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">1. Пропускная способность\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Средний FPS: сколько кадров система создаёт за определённое время.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__arrow shrink-0 self-center text-xl text-gray-400 rotate-90 sm:rotate-0\" aria-hidden=\"true\">→\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0 flex-1 rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">2\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">2. Стабильность\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Распределение времени кадра: поступают ли кадры с устойчивой периодичностью или содержат длинные выбросы.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__arrow shrink-0 self-center text-xl text-gray-400 rotate-90 sm:rotate-0\" aria-hidden=\"true\">→\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0 flex-1 rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">3\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">3. Отзывчивость\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Задержка: сколько времени требуется, чтобы ввод и работа игры привели к видимому кадру.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Cp>Система может быть сильной в одном углу и слабой в другом. Высокий FPS с нестабильным временем кадров может ощущаться рваным. Стабильный рендеринг с очень высокой задержкой может ощущаться плавным, но медленным. Хорошая настройка производительности должна определить, какой угол на самом деле не справляется.\u003C\u002Fp>\n\u003Ch2 id=\"section-12\">Почему средний FPS скрывает рывки\u003C\u002Fh2>\n\u003Csection class=\"editorjs-comparison my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Две сессии могут иметь одинаковый средний FPS и ощущаться по-разному\u003C\u002Fh3>\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left dark:border-gray-700 dark:bg-gray-900\">\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Стабильная сессия\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Нестабильная сессия\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Средний FPS\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">120 FPS\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">120 FPS\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Большинство времён кадров\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Around 8–9 ms\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Mostly 5–7 ms\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Медленные кадры\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Few meaningful spikes\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Repeated 25–50 ms spikes\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Опыт игрока\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Consistent motion\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Hitches despite the high average\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Cp>Нестабильная сессия может компенсировать длинные кадры, отрисовывая множество очень быстрых кадров между всплесками. Среднее остаётся высоким, но игрок замечает всплески, а не среднее арифметическое.\u003C\u002Fp>\n\u003Ch2 id=\"section-15\">Что пытаются показать 1% низких\u003C\u002Fh2>\n\u003Cp>Метрики низкого FPS и перцентилей существуют потому, что только средний FPS не может описать медленный конец распределения кадров.\u003C\u002Fp>\n\u003Cp>NVIDIA FrameView сообщает средний FPS вместе с метриками 1% Low и 0.1% Low. В его документации 1% Low описывается как среднее значение самых медленных 1% кадров, и отмечается, что чем ближе значение низкого FPS к среднему, тем более стабильным обычно бывает опыт.\u003C\u002Fp>\n\u003Cp>NVIDIA также предоставляет метрики на основе перцентилей, такие как частота кадров, отделяющая самые медленные 1% кадров от более быстрых 99%. Это связанные концепции, но не каждый инструмент бенчмаркинга реализует или обозначает статистику низкого FPS точно одинаково.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--warning my-6 rounded-xl border p-5 border-amber-300 bg-amber-50 dark:border-amber-900 dark:bg-amber-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Не сравнивайте каждое значение «1% low» так, будто формула универсальна\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Разные инструменты могут по-разному вычислять, агрегировать или обозначать статистику низкого FPS и процентилей. По возможности сравнивайте результаты, полученные \u003Cstrong>одним и тем же инструментом и методологией\u003C\u002Fstrong>.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-20\">Графики времени кадра часто полезнее одного сводного числа\u003C\u002Fh2>\n\u003Cp>График времени кадра показывает распределение кадров по времени в течение записи. Плоская или узкая полоса обычно указывает на стабильную выдачу кадров. Высокие одиночные всплески выявляют подтормаживания. Повторяющиеся волны могут указывать на периодическую фоновую работу, потоковую подгрузку, синхронизацию или другую повторяющуюся нагрузку.\u003C\u002Fp>\n\u003Cp>Intel PresentMon создан именно для такого типа анализа. Текущий инструмент Intel может показывать графики производительности в реальном времени, процентили, скользящие средние и телеметрию GPU, а также поддерживает приложения DirectX, OpenGL и Vulkan.\u003C\u002Fp>\n\u003Cp>NVIDIA FrameView аналогично измеряет частоту кадров и время кадра и может записывать подробные данные захвата в журналы для последующего анализа.\u003C\u002Fp>\n\u003Ch2 id=\"section-24\">Тест стабильности времени кадра\u003C\u002Fh2>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Определите, не скрывает ли высокий FPS подтормаживания\u003C\u002Fh3>\u003Cdiv class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">1\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">1. Запишите повторяемую сцену\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Используйте один и тот же маршрут, бенчмарк, точку сохранения или игровую последовательность, чтобы разные прогоны были сопоставимы.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">2\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">2. Зафиксируйте средний FPS\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Рассматривайте его как пропускную способность, а не как окончательный вердикт о плавности.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">3\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">3. Изучите стабильность времени кадра\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Ищите одиночные всплески, повторяющиеся всплески, большой разброс или длинные кластеры медленных кадров.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">4\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">4. Проверьте метрики низкого FPS или процентилей\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Большие разрывы между средними и медленными метриками кадров предупреждают о нестабильной выдаче кадров.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">5\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">5. Сравните тайминги CPU и GPU\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Определите, возникает ли медленный кадр до GPU, на GPU или в другой части конвейера.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">6\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">6. Меняйте по одной переменной за раз\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Независимо проверяйте ограничение частоты кадров, графические настройки, фоновый процесс, состояние шейдеров, путь хранения или настройки драйвера\u002Fигры.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">7\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">7. Повторите тот же захват\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Исправление имеет смысл только в том случае, если распределение времени кадра улучшается в сопоставимых условиях.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-26\">Узкое место CPU и узкое место GPU выглядят не одинаково\u003C\u002Fh2>\n\u003Cp>Низкая частота кадров не говорит о том, какой процессор отвечает за задержку. CPU подготавливает игровую работу и работу рендеринга; GPU выполняет графическую работу. Любая из сторон может стать ограничителем темпа.\u003C\u002Fp>\n\u003Cp>Метрика GPU Busy в Intel PresentMon специально предназначена для оценки связи между временем выполнения GPU и общим временем кадра. Это может помочь отличить кадры, в которых GPU занят большую часть интервала, от кадров, где значительная часть задержки возникает в другом месте.\u003C\u002Fp>\n\u003Csection class=\"editorjs-comparison my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Упрощённые шаблоны таймингов\u003C\u002Fh3>\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left dark:border-gray-700 dark:bg-gray-900\">\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Типичный шаблон таймингов\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">На что это может указывать\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Ограничение GPU\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">GPU busy time is close to the frame interval\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">The graphics workload is consuming most of the available frame budget\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Ограничение CPU \u002F конвейера\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Frame time grows while GPU busy time remains materially lower\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">The delay may be before GPU execution or elsewhere in the presentation pipeline\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Периодическое событие\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Mostly stable timing with isolated large spikes\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Streaming, shader compilation, background work, asset loading or another transient event may be involved\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Caside class=\"editorjs-callout editorjs-callout--note my-6 rounded-xl border p-5 border-gray-300 bg-gray-50 dark:border-gray-700 dark:bg-gray-900\u002F40\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Это диагностическое свидетельство, а не автоматический вердикт\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Шаблоны таймингов сужают область поиска. Сами по себе они не доказывают конкретную первопричину.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-31\">Почему ограничение частоты кадров иногда ощущается плавнее максимального FPS\u003C\u002Fh2>\n\u003Cp>Запуск игры на максимально возможном неограниченном FPS может поддерживать одну из частей системы в состоянии, близком к насыщению. В некоторых нагрузках наличие запаса может снизить нестабильность таймингов и обеспечить более стабильный ритм.\u003C\u002Fp>\n\u003Cp>Это не означает, что каждую игру нужно ограничивать до одного и того же числа. Полезная проверка эмпирическая: запишите одну и ту же нагрузку без ограничения и с одним или несколькими разумными ограничениями, затем сравните стабильность времени кадра и задержку.\u003C\u002Fp>\n\u003Cp>Более низкое среднее значение при существенно более плотной выдаче кадров может ощущаться лучше, чем более высокое среднее, прерываемое частыми всплесками.\u003C\u002Fp>\n\u003Ch2 id=\"section-35\">Распространённые причины подтормаживаний при высоком FPS\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Класс причины\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Что вы можете увидеть\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Что проверить\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Компиляция шейдеров или конвейера\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Всплески, связанные с впервые встречающимися эффектами, локациями или действиями\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Повторите ту же последовательность и сравните последующие проходы\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Потоковая подгрузка ресурсов \u002F мира\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Всплески при входе в области или загрузке нового контента\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Хранилище, настройки текстур, поведение потоковой подгрузки мира\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Планирование CPU \u002F фоновая работа\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Нерегулярные всплески, не связанные с нагрузкой GPU\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Фоновые процессы, оверлеи, запись, насыщение CPU\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Насыщение GPU\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Стабильно высокое время выполнения GPU\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Снизьте дорогие графические настройки или проверьте ограничение частоты кадров\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Нехватка памяти\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Усиливающиеся подтормаживания при высокой нагрузке на VRAM\u002FRAM\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Уровень текстур, разрешение, фоновые приложения, поведение рабочего набора\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Представление \u002F синхронизация\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Проблемы с ритмом вокруг режимов обновления или представления\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Комбинации V-Sync, VRR, ограничения частоты кадров и режима дисплея\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Регрессия драйвера или игры\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Проблема появляется после конкретного обновления\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">По возможности сравните версии или официальные примечания об известных проблемах\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-37\">Компиляция шейдеров — особый случай\u003C\u002Fh2>\n\u003Cp>Некоторые подтормаживания не являются простой проблемой стабильной производительности. Рабочая нагрузка может комфортно работать при высоком FPS, пока игра не выполнит дорогостоящую работу, которая происходит только в определённые моменты.\u003C\u002Fp>\n\u003Cp>Компиляция шейдеров или конвейера — один из примеров. Если задержка появляется при первом столкновении с определённым эффектом или областью, но становится меньше или исчезает при последующих проходах, этот паттерн отличается от GPU, который постоянно слишком медленный.\u003C\u002Fp>\n\u003Cp>Именно поэтому важны повторяемые захваты. Одно среднее число за всю сессию может смешать стабильный рендеринг и разовые события в результат, который не объясняет ни то, ни другое.\u003C\u002Fp>\n\u003Ch2 id=\"section-41\">VRR не исправляет плохое время кадров\u003C\u002Fh2>\n\u003Cp>Переменная частота обновления может более точно согласовать тайминг обновления дисплея с переменной доставкой кадров и уменьшить видимое разрывание или дрожание в пределах своего рабочего диапазона.\u003C\u002Fp>\n\u003Cp>Но VRR не превращает кадр в 40 мс в кадр в 8 мс. Большая задержка рендеринга или CPU остаётся большой задержкой. Технология дисплея может улучшить представление; она не может устранить работу, которая задержала кадр изначально.\u003C\u002Fp>\n\u003Ch2 id=\"section-44\">Почему 0,1% низких значений могут стать шумными\u003C\u002Fh2>\n\u003Cp>Метрики, ориентированные на очень малую долю кадров, полезны для выявления серьёзных выбросов, но они также становятся чувствительными к длительности захвата и разовым событиям.\u003C\u002Fp>\n\u003Cp>Короткий захват, содержащий один переход загрузки, может дать dramatically отличающийся результат экстремально низких значений по сравнению с более длительным повторяемым игровым прогоном. Это не делает метрику бесполезной; это означает, что методология тестирования имеет значение.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--success my-6 rounded-xl border p-5 border-emerald-300 bg-emerald-50 dark:border-emerald-900 dark:bg-emerald-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Используйте метрику, чтобы ответить на вопрос\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Средний FPS отвечает на пропускную способность. Метрики низкого FPS и процентилей описывают медленный хвост. График времени кадров показывает, \u003Cstrong>когда\u003C\u002Fstrong> произошли плохие кадры. Используйте их вместе.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-48\">Практический протокол бенчмарка\u003C\u002Fh2>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Измерьте игру, не обманывая себя\u003C\u002Fh3>\u003Cdiv class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">1\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">Прогрев\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Дайте игре, шейдерам и ресурсам достичь достаточно повторяемого состояния, когда это соответствует вопросу, который вы тестируете.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">2\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">Зафиксируйте условия\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Используйте одинаковое разрешение, настройки, ограничение кадров, местоположение и рабочую нагрузку.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">3\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">Захватывайте достаточно долго\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Избегайте оценки медленного хвоста по крошечной выборке, если только само событие не является тем, что вы хотите измерить.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">4\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">Повторяйте\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Запустите один и тот же тест несколько раз, чтобы отделить повторяемое поведение от случайных фоновых событий.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">5\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">Сравнивайте распределения\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Смотрите на средний FPS, метрики медленных кадров и трассировку времени кадров.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">6\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">Записывайте окружение\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Сборка игры, драйвер, операционная система, аппаратное обеспечение и основные изменения конфигурации важны для последующих сравнений.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-50\">Оценочная карта стабильности времени кадров\u003C\u002Fh2>\n\u003Csection class=\"editorjs-comparison my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">На что обратить внимание, прежде чем называть игру «плавной»\u003C\u002Fh3>\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left dark:border-gray-700 dark:bg-gray-900\">\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Здоровый сигнал\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Предупреждающий сигнал\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Средняя пропускная способность\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Meets your performance target\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Average hides repeated drops below the useful range\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Хвост медленных кадров\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Reasonably close to average for the workload\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Large persistent gap between average and low-FPS metrics\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Трассировка времени кадров\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Narrow, mostly stable band\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Frequent tall spikes or recurring oscillation\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Повторяемость\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Similar pattern across comparable runs\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Result changes wildly between identical tests\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Диагностика тайминга\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">CPU\u002FGPU behavior matches the suspected constraint\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">Optimization is being applied without identifying the bottleneck\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-52\">Что могло бы изменить этот ответ?\u003C\u002Fh2>\n\u003Cp>Точные доступные метрики зависят от операционной системы, графического API, аппаратного обеспечения и инструмента измерения. Будущие системы представления или конвейеры генерации кадров также могут потребовать дополнительных различий между отрендеренными, сгенерированными и отображаемыми кадрами.\u003C\u002Fp>\n\u003Cp>Основной принцип вряд ли изменится: средняя пропускная способность не может полностью описать согласованность тайминга. Пока интерактивная графика доставляется как последовательность кадров, распределение и тайминг этих кадров имеют значение.\u003C\u002Fp>\n\u003Ch2 id=\"section-55\">Ограничения\u003C\u002Fh2>\n\u003Cp>Эта статья представляет собой диагностическую схему, а не утверждение, что у каждого заикания одна и та же первопричина. Игровые движки, API, операционные системы, драйверы и графические конвейеры различаются.\u003C\u002Fp>\n\u003Cp>Метрики низкого FPS также следует интерпретировать в рамках методологии инструмента, который их создал. Сравнение разных инструментов может вводить в заблуждение, если статистические определения или конвейеры захвата различаются.\u003C\u002Fp>\n\u003Ch2 id=\"section-58\">Заключение\u003C\u002Fh2>\n\u003Cp>Если игра показывает высокий FPS, но всё равно ощущается плохо, перестаньте смотреть на среднее значение.\u003C\u002Fp>\n\u003Cp>Измеряйте время кадра. Изучайте медленный хвост. Выясните, когда происходят всплески. Сравните тайминги CPU и GPU. Затем измените одну переменную и повторите ту же нагрузку. Плавность — это не только то, сколько кадров может выдать ваша система. Это то, насколько стабильно эти кадры доходят до вас.\u003C\u002Fp>\n\u003Ch2 id=\"section-61\">Часто задаваемые вопросы\u003C\u002Fh2>\n\u003Csection class=\"editorjs-faq my-6 rounded-xl border border-gray-200 p-5 dark:border-gray-700\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">FPS, время кадра и заикание\u003C\u002Fh3>\u003Cdiv id=\"faq1\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Почему 120 FPS всё ещё ощущаются как заикание?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Потому что 120 FPS — это среднее значение. Повторяющиеся длинные кадры могут создавать видимые рывки, даже если множество быстрых кадров поддерживают высокое среднее.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq2\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Что такое время кадра?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Время кадра — это время, необходимое для отдельного кадра, обычно измеряется в миллисекундах. Более низкое и более стабильное время кадра обычно указывает на более плавную подачу.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq3\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Что означает 1% низкий FPS?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Это метрика, предназначенная для описания производительности среди самых медленных кадров. Точные реализации могут различаться в зависимости от инструмента, поэтому сравнивайте результаты, используя одну и ту же методологию тестирования.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq4\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Является ли 1% низкий более важным, чем средний FPS?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Ни одна из метрик не является достаточной сама по себе. Средний FPS описывает пропускную способность, в то время как метрики низкого FPS и графики времени кадра выявляют проблемы стабильности.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq5\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Может ли VRR исправить микро-заикание?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">VRR может улучшить отображение переменной подачи кадров, но не может устранить длинный кадр, вызванный задержками CPU, GPU, потоковой передачи или другой рабочей нагрузки.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq6\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Стоит ли ограничивать FPS, чтобы уменьшить заикание?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Иногда ограничение может улучшить стабильность, оставляя запас для системы, но это следует проверять с помощью повторяемых захватов времени кадра, а не предполагать.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-63\">Глоссарий\u003C\u002Fh2>\n\u003Csection class=\"editorjs-glossary my-6 rounded-xl border border-gray-200 dark:border-gray-700 p-5\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Ключевые термины производительности\u003C\u002Fh3>\u003Cdl>\u003Cdiv id=\"frame-time\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Время кадра\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Время, связанное с созданием или представлением отдельного кадра, обычно выражается в миллисекундах.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"average-fps\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Средний FPS\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Средняя пропускная способность, описывающая количество кадров, созданных за измеренный интервал.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"one-percent-low\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">1% низкий\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Метрика производительности медленных кадров. Точный расчёт может различаться в зависимости от инструмента; NVIDIA FrameView описывает свой 1% низкий как среднее значение самых медленных 1% кадров.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"frame-time-spike\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Всплеск времени кадра\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Кадр, длительность которого значительно превышает длительность окружающих кадров, часто воспринимается как рывок или заикание.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"gpu-busy\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">GPU Busy\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Метрика тайминга PresentMon, используемая для сравнения времени выполнения GPU с более широким интервалом кадра и помогающая диагностировать баланс CPU\u002FGPU.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"frame-time-stability-test\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Тест стабильности времени кадра\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Рабочий процесс Figure Rocks для оценки средней пропускной способности, распределения времени кадра, метрик медленных кадров и таймингов CPU\u002FGPU в повторяемых условиях.\u003C\u002Fdd>\u003C\u002Fdiv>\u003C\u002Fdl>\u003C\u002Fsection>\n\u003Ch2 id=\"section-65\">Основные источники\u003C\u002Fh2>\n\u003Ca href=\"https:\u002F\u002Fgame.intel.com\u002Fus\u002Fintel-presentmon\u002F\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Intel — PresentMon\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Официальный инструмент мониторинга производительности Intel с графиками в реальном времени, процентилями, телеметрией GPU, GPU Busy и поддержкой основных графических API.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fgeforce\u002Ftechnologies\u002Fframeview\u002F\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">NVIDIA — FrameView\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Официальный инструмент NVIDIA для измерения частоты кадров, времени кадра, мощности и производительности на ватт с использованием аналитики на основе PresentMon.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fimages.nvidia.com\u002Fcontent\u002Fgeforce\u002Ftechnologies\u002Fframeview\u002Fframeview-1-4-user-guide-web-version.pdf\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">NVIDIA — Руководство пользователя FrameView\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Официальная документация, определяющая средний FPS, процентильные метрики, 1% низкий и 0.1% низкий и объясняющая, как стабильность связана с заиканием.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.intel.com\u002Fcontent\u002Fwww\u002Fus\u002Fen\u002Fdeveloper\u002Farticles\u002Fguide\u002Flp-api-developer-optimization-guide.html\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Intel — Руководство по разработке и оптимизации графических API\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Официальные рекомендации Intel, охватывающие режимы представления, соображения по планированию CPU и использование PresentMon для анализа представления кадров.\u003C\u002Fp>\u003C\u002Fa>",{"time":538,"blocks":539,"version":1077},1790374893752,[540,545,552,558,564,569,573,577,581,585,601,605,609,646,650,654,658,662,666,672,676,680,684,688,692,718,722,726,730,760,765,769,773,777,781,785,822,826,830,834,838,842,846,850,854,858,862,868,872,895,899,940,944,948,952,956,960,964,968,972,976,980,1009,1013,1040,1044,1053,1061,1069],{"id":541,"data":542,"type":544},"intro",{"text":543},"Игра может показывать 120, 144 или даже 200 FPS и при этом ощущаться рваной. Причина проста: средняя частота кадров говорит о том, сколько кадров было создано за определённое время, но не о том, поступали ли эти кадры равномерно. Несколько длинных кадров могут вызвать заметные подтормаживания или микрорывки, даже когда средний показатель FPS выглядит отлично.","paragraph",{"id":546,"data":547,"type":551},"direct",{"body":548,"title":549,"variant":550},"\u003Cstrong>Высокий средний FPS не гарантирует плавный геймплей.\u003C\u002Fstrong> Плавность зависит от стабильности времени кадра: насколько равномерно поступают кадры. Чтобы диагностировать рывки, смотрите на время кадров, перцентильные метрики или метрики низкого FPS, а также на тайминги CPU\u002FGPU — а не только на средний FPS.","Прямой ответ","info","callout",{"id":553,"data":554,"type":551},"model-note",{"body":555,"title":556,"variant":557},"Треугольник плавности и Тест стабильности времени кадра ниже — это практические модели Figure Rocks. Это не официальная терминология Intel, NVIDIA или Microsoft.","Модель, используемая в этой статье","note",{"id":559,"data":560,"type":563},"toc",{"title":561,"maxLevel":562,"minLevel":47},"Содержание",3,"tableOfContents",{"id":565,"data":566,"type":568},"h-fps-vs-ft",{"text":567,"level":47},"FPS — это среднее; время кадра — это ритм","header",{"id":570,"data":571,"type":544},"p-fps-1",{"text":572},"FPS показывает, сколько кадров завершается за секунду. Время кадра показывает, сколько времени занимает отдельный кадр.",{"id":574,"data":575,"type":544},"p-fps-2",{"text":576},"Примерное преобразование простое: время кадра в миллисекундах приблизительно равно 1000, делённому на FPS. При 60 FPS бюджет кадра составляет около 16,7 мс. При 120 FPS — около 8,3 мс. При 144 FPS — около 6,9 мс.",{"id":578,"data":579,"type":544},"p-fps-3",{"text":580},"Но эти числа имеют смысл только в том случае, если доставка кадров достаточно стабильна. Последовательность 7 мс, 7 мс, 7 мс, 35 мс, 7 мс, 7 мс всё ещё может в среднем давать высокий FPS, создавая при этом заметный рывок.",{"id":582,"data":583,"type":568},"h-triangle",{"text":584,"level":47},"Треугольник плавности",{"id":586,"data":587,"type":600},"triangle-flow",{"steps":588,"title":598,"orientation":599},[589,592,595],{"label":590,"description":591},"1. Пропускная способность","Средний FPS: сколько кадров система создаёт за определённое время.",{"label":593,"description":594},"2. Стабильность","Распределение времени кадра: поступают ли кадры с устойчивой периодичностью или содержат длинные выбросы.",{"label":596,"description":597},"3. Отзывчивость","Задержка: сколько времени требуется, чтобы ввод и работа игры привели к видимому кадру.","Три разные вещи определяют, насколько быстрой ощущается игра","auto","processFlow",{"id":602,"data":603,"type":544},"p-triangle",{"text":604},"Система может быть сильной в одном углу и слабой в другом. Высокий FPS с нестабильным временем кадров может ощущаться рваным. Стабильный рендеринг с очень высокой задержкой может ощущаться плавным, но медленным. Хорошая настройка производительности должна определить, какой угол на самом деле не справляется.",{"id":606,"data":607,"type":568},"h-average",{"text":608,"level":47},"Почему средний FPS скрывает рывки",{"id":610,"data":611,"type":645},"same-average",{"rows":612,"title":636,"layout":637,"columns":638},[613,618,624,630],{"id":614,"label":615,"values":616},"avg","Средний FPS",{"stable":617,"unstable":617},"120 FPS",{"id":619,"label":620,"values":621},"normal","Большинство времён кадров",{"stable":622,"unstable":623},"Around 8–9 ms","Mostly 5–7 ms",{"id":625,"label":626,"values":627},"outliers","Медленные кадры",{"stable":628,"unstable":629},"Few meaningful spikes","Repeated 25–50 ms spikes",{"id":631,"label":632,"values":633},"feel","Опыт игрока",{"stable":634,"unstable":635},"Consistent motion","Hitches despite the high average","Две сессии могут иметь одинаковый средний FPS и ощущаться по-разному","table",[639,642],{"id":640,"label":641},"stable","Стабильная сессия",{"id":643,"label":644},"unstable","Нестабильная сессия","comparison",{"id":647,"data":648,"type":544},"p-average-1",{"text":649},"Нестабильная сессия может компенсировать длинные кадры, отрисовывая множество очень быстрых кадров между всплесками. Среднее остаётся высоким, но игрок замечает всплески, а не среднее арифметическое.",{"id":651,"data":652,"type":568},"h-onepercent",{"text":653,"level":47},"Что пытаются показать 1% низких",{"id":655,"data":656,"type":544},"p-low-1",{"text":657},"Метрики низкого FPS и перцентилей существуют потому, что только средний FPS не может описать медленный конец распределения кадров.",{"id":659,"data":660,"type":544},"p-low-2",{"text":661},"NVIDIA FrameView сообщает средний FPS вместе с метриками 1% Low и 0.1% Low. В его документации 1% Low описывается как среднее значение самых медленных 1% кадров, и отмечается, что чем ближе значение низкого FPS к среднему, тем более стабильным обычно бывает опыт.",{"id":663,"data":664,"type":544},"p-low-3",{"text":665},"NVIDIA также предоставляет метрики на основе перцентилей, такие как частота кадров, отделяющая самые медленные 1% кадров от более быстрых 99%. Это связанные концепции, но не каждый инструмент бенчмаркинга реализует или обозначает статистику низкого FPS точно одинаково.",{"id":667,"data":668,"type":551},"low-warning",{"body":669,"title":670,"variant":671},"Разные инструменты могут по-разному вычислять, агрегировать или обозначать статистику низкого FPS и процентилей. По возможности сравнивайте результаты, полученные \u003Cstrong>одним и тем же инструментом и методологией\u003C\u002Fstrong>.","Не сравнивайте каждое значение «1% low» так, будто формула универсальна","warning",{"id":673,"data":674,"type":568},"h-graph",{"text":675,"level":47},"Графики времени кадра часто полезнее одного сводного числа",{"id":677,"data":678,"type":544},"p-graph-1",{"text":679},"График времени кадра показывает распределение кадров по времени в течение записи. Плоская или узкая полоса обычно указывает на стабильную выдачу кадров. Высокие одиночные всплески выявляют подтормаживания. Повторяющиеся волны могут указывать на периодическую фоновую работу, потоковую подгрузку, синхронизацию или другую повторяющуюся нагрузку.",{"id":681,"data":682,"type":544},"p-graph-2",{"text":683},"Intel PresentMon создан именно для такого типа анализа. Текущий инструмент Intel может показывать графики производительности в реальном времени, процентили, скользящие средние и телеметрию GPU, а также поддерживает приложения DirectX, OpenGL и Vulkan.",{"id":685,"data":686,"type":544},"p-graph-3",{"text":687},"NVIDIA FrameView аналогично измеряет частоту кадров и время кадра и может записывать подробные данные захвата в журналы для последующего анализа.",{"id":689,"data":690,"type":568},"h-test",{"text":691,"level":47},"Тест стабильности времени кадра",{"id":693,"data":694,"type":600},"test-flow",{"steps":695,"title":717,"orientation":599},[696,699,702,705,708,711,714],{"label":697,"description":698},"1. Запишите повторяемую сцену","Используйте один и тот же маршрут, бенчмарк, точку сохранения или игровую последовательность, чтобы разные прогоны были сопоставимы.",{"label":700,"description":701},"2. Зафиксируйте средний FPS","Рассматривайте его как пропускную способность, а не как окончательный вердикт о плавности.",{"label":703,"description":704},"3. Изучите стабильность времени кадра","Ищите одиночные всплески, повторяющиеся всплески, большой разброс или длинные кластеры медленных кадров.",{"label":706,"description":707},"4. Проверьте метрики низкого FPS или процентилей","Большие разрывы между средними и медленными метриками кадров предупреждают о нестабильной выдаче кадров.",{"label":709,"description":710},"5. Сравните тайминги CPU и GPU","Определите, возникает ли медленный кадр до GPU, на GPU или в другой части конвейера.",{"label":712,"description":713},"6. Меняйте по одной переменной за раз","Независимо проверяйте ограничение частоты кадров, графические настройки, фоновый процесс, состояние шейдеров, путь хранения или настройки драйвера\u002Fигры.",{"label":715,"description":716},"7. Повторите тот же захват","Исправление имеет смысл только в том случае, если распределение времени кадра улучшается в сопоставимых условиях.","Определите, не скрывает ли высокий FPS подтормаживания",{"id":719,"data":720,"type":568},"h-bottleneck",{"text":721,"level":47},"Узкое место CPU и узкое место GPU выглядят не одинаково",{"id":723,"data":724,"type":544},"p-bottle-1",{"text":725},"Низкая частота кадров не говорит о том, какой процессор отвечает за задержку. CPU подготавливает игровую работу и работу рендеринга; GPU выполняет графическую работу. Любая из сторон может стать ограничителем темпа.",{"id":727,"data":728,"type":544},"p-bottle-2",{"text":729},"Метрика GPU Busy в Intel PresentMon специально предназначена для оценки связи между временем выполнения GPU и общим временем кадра. Это может помочь отличить кадры, в которых GPU занят большую часть интервала, от кадров, где значительная часть задержки возникает в другом месте.",{"id":731,"data":732,"type":645},"bottleneck-table",{"rows":733,"title":752,"layout":637,"columns":753},[734,740,746],{"id":735,"label":736,"values":737},"gpu","Ограничение GPU",{"meaning":738,"pattern":739},"The graphics workload is consuming most of the available frame budget","GPU busy time is close to the frame interval",{"id":741,"label":742,"values":743},"cpu","Ограничение CPU \u002F конвейера",{"meaning":744,"pattern":745},"The delay may be before GPU execution or elsewhere in the presentation pipeline","Frame time grows while GPU busy time remains materially lower",{"id":747,"label":748,"values":749},"spike","Периодическое событие",{"meaning":750,"pattern":751},"Streaming, shader compilation, background work, asset loading or another transient event may be involved","Mostly stable timing with isolated large spikes","Упрощённые шаблоны таймингов",[754,757],{"id":755,"label":756},"pattern","Типичный шаблон таймингов",{"id":758,"label":759},"meaning","На что это может указывать",{"id":761,"data":762,"type":551},"bottle-note",{"body":763,"title":764,"variant":557},"Шаблоны таймингов сужают область поиска. Сами по себе они не доказывают конкретную первопричину.","Это диагностическое свидетельство, а не автоматический вердикт",{"id":766,"data":767,"type":568},"h-cap",{"text":768,"level":47},"Почему ограничение частоты кадров иногда ощущается плавнее максимального FPS",{"id":770,"data":771,"type":544},"p-cap-1",{"text":772},"Запуск игры на максимально возможном неограниченном FPS может поддерживать одну из частей системы в состоянии, близком к насыщению. В некоторых нагрузках наличие запаса может снизить нестабильность таймингов и обеспечить более стабильный ритм.",{"id":774,"data":775,"type":544},"p-cap-2",{"text":776},"Это не означает, что каждую игру нужно ограничивать до одного и того же числа. Полезная проверка эмпирическая: запишите одну и ту же нагрузку без ограничения и с одним или несколькими разумными ограничениями, затем сравните стабильность времени кадра и задержку.",{"id":778,"data":779,"type":544},"p-cap-3",{"text":780},"Более низкое среднее значение при существенно более плотной выдаче кадров может ощущаться лучше, чем более высокое среднее, прерываемое частыми всплесками.",{"id":782,"data":783,"type":568},"h-causes",{"text":784,"level":47},"Распространённые причины подтормаживаний при высоком FPS",{"id":786,"data":787,"type":637},"causes-table",{"content":788,"stretched":821,"withHeadings":15},[789,793,797,801,805,809,813,817],[790,791,792],"Класс причины","Что вы можете увидеть","Что проверить",[794,795,796],"Компиляция шейдеров или конвейера","Всплески, связанные с впервые встречающимися эффектами, локациями или действиями","Повторите ту же последовательность и сравните последующие проходы",[798,799,800],"Потоковая подгрузка ресурсов \u002F мира","Всплески при входе в области или загрузке нового контента","Хранилище, настройки текстур, поведение потоковой подгрузки мира",[802,803,804],"Планирование CPU \u002F фоновая работа","Нерегулярные всплески, не связанные с нагрузкой GPU","Фоновые процессы, оверлеи, запись, насыщение CPU",[806,807,808],"Насыщение GPU","Стабильно высокое время выполнения GPU","Снизьте дорогие графические настройки или проверьте ограничение частоты кадров",[810,811,812],"Нехватка памяти","Усиливающиеся подтормаживания при высокой нагрузке на VRAM\u002FRAM","Уровень текстур, разрешение, фоновые приложения, поведение рабочего набора",[814,815,816],"Представление \u002F синхронизация","Проблемы с ритмом вокруг режимов обновления или представления","Комбинации V-Sync, VRR, ограничения частоты кадров и режима дисплея",[818,819,820],"Регрессия драйвера или игры","Проблема появляется после конкретного обновления","По возможности сравните версии или официальные примечания об известных проблемах",false,{"id":823,"data":824,"type":568},"h-shader",{"text":825,"level":47},"Компиляция шейдеров — особый случай",{"id":827,"data":828,"type":544},"p-shader-1",{"text":829},"Некоторые подтормаживания не являются простой проблемой стабильной производительности. Рабочая нагрузка может комфортно работать при высоком FPS, пока игра не выполнит дорогостоящую работу, которая происходит только в определённые моменты.",{"id":831,"data":832,"type":544},"p-shader-2",{"text":833},"Компиляция шейдеров или конвейера — один из примеров. Если задержка появляется при первом столкновении с определённым эффектом или областью, но становится меньше или исчезает при последующих проходах, этот паттерн отличается от GPU, который постоянно слишком медленный.",{"id":835,"data":836,"type":544},"p-shader-3",{"text":837},"Именно поэтому важны повторяемые захваты. Одно среднее число за всю сессию может смешать стабильный рендеринг и разовые события в результат, который не объясняет ни то, ни другое.",{"id":839,"data":840,"type":568},"h-vrr",{"text":841,"level":47},"VRR не исправляет плохое время кадров",{"id":843,"data":844,"type":544},"p-vrr-1",{"text":845},"Переменная частота обновления может более точно согласовать тайминг обновления дисплея с переменной доставкой кадров и уменьшить видимое разрывание или дрожание в пределах своего рабочего диапазона.",{"id":847,"data":848,"type":544},"p-vrr-2",{"text":849},"Но VRR не превращает кадр в 40 мс в кадр в 8 мс. Большая задержка рендеринга или CPU остаётся большой задержкой. Технология дисплея может улучшить представление; она не может устранить работу, которая задержала кадр изначально.",{"id":851,"data":852,"type":568},"h-pointone",{"text":853,"level":47},"Почему 0,1% низких значений могут стать шумными",{"id":855,"data":856,"type":544},"p-pointone-1",{"text":857},"Метрики, ориентированные на очень малую долю кадров, полезны для выявления серьёзных выбросов, но они также становятся чувствительными к длительности захвата и разовым событиям.",{"id":859,"data":860,"type":544},"p-pointone-2",{"text":861},"Короткий захват, содержащий один переход загрузки, может дать dramatically отличающийся результат экстремально низких значений по сравнению с более длительным повторяемым игровым прогоном. Это не делает метрику бесполезной; это означает, что методология тестирования имеет значение.",{"id":863,"data":864,"type":551},"metrics-rule",{"body":865,"title":866,"variant":867},"Средний FPS отвечает на пропускную способность. Метрики низкого FPS и процентилей описывают медленный хвост. График времени кадров показывает, \u003Cstrong>когда\u003C\u002Fstrong> произошли плохие кадры. Используйте их вместе.","Используйте метрику, чтобы ответить на вопрос","success",{"id":869,"data":870,"type":568},"h-protocol",{"text":871,"level":47},"Практический протокол бенчмарка",{"id":873,"data":874,"type":600},"protocol-flow",{"steps":875,"title":894,"orientation":599},[876,879,882,885,888,891],{"label":877,"description":878},"Прогрев","Дайте игре, шейдерам и ресурсам достичь достаточно повторяемого состояния, когда это соответствует вопросу, который вы тестируете.",{"label":880,"description":881},"Зафиксируйте условия","Используйте одинаковое разрешение, настройки, ограничение кадров, местоположение и рабочую нагрузку.",{"label":883,"description":884},"Захватывайте достаточно долго","Избегайте оценки медленного хвоста по крошечной выборке, если только само событие не является тем, что вы хотите измерить.",{"label":886,"description":887},"Повторяйте","Запустите один и тот же тест несколько раз, чтобы отделить повторяемое поведение от случайных фоновых событий.",{"label":889,"description":890},"Сравнивайте распределения","Смотрите на средний FPS, метрики медленных кадров и трассировку времени кадров.",{"label":892,"description":893},"Записывайте окружение","Сборка игры, драйвер, операционная система, аппаратное обеспечение и основные изменения конфигурации важны для последующих сравнений.","Измерьте игру, не обманывая себя",{"id":896,"data":897,"type":568},"h-scorecard",{"text":898,"level":47},"Оценочная карта стабильности времени кадров",{"id":900,"data":901,"type":645},"scorecard",{"rows":902,"title":933,"layout":637,"columns":934},[903,909,915,921,927],{"id":904,"label":905,"values":906},"average","Средняя пропускная способность",{"good":907,"warning":908},"Meets your performance target","Average hides repeated drops below the useful range",{"id":910,"label":911,"values":912},"tail","Хвост медленных кадров",{"good":913,"warning":914},"Reasonably close to average for the workload","Large persistent gap between average and low-FPS metrics",{"id":916,"label":917,"values":918},"trace","Трассировка времени кадров",{"good":919,"warning":920},"Narrow, mostly stable band","Frequent tall spikes or recurring oscillation",{"id":922,"label":923,"values":924},"repeat","Повторяемость",{"good":925,"warning":926},"Similar pattern across comparable runs","Result changes wildly between identical tests",{"id":928,"label":929,"values":930},"cause","Диагностика тайминга",{"good":931,"warning":932},"CPU\u002FGPU behavior matches the suspected constraint","Optimization is being applied without identifying the bottleneck","На что обратить внимание, прежде чем называть игру «плавной»",[935,938],{"id":936,"label":937},"good","Здоровый сигнал",{"id":671,"label":939},"Предупреждающий сигнал",{"id":941,"data":942,"type":568},"h-change",{"text":943,"level":47},"Что могло бы изменить этот ответ?",{"id":945,"data":946,"type":544},"p-change-1",{"text":947},"Точные доступные метрики зависят от операционной системы, графического API, аппаратного обеспечения и инструмента измерения. Будущие системы представления или конвейеры генерации кадров также могут потребовать дополнительных различий между отрендеренными, сгенерированными и отображаемыми кадрами.",{"id":949,"data":950,"type":544},"p-change-2",{"text":951},"Основной принцип вряд ли изменится: средняя пропускная способность не может полностью описать согласованность тайминга. Пока интерактивная графика доставляется как последовательность кадров, распределение и тайминг этих кадров имеют значение.",{"id":953,"data":954,"type":568},"h-limit",{"text":955,"level":47},"Ограничения",{"id":957,"data":958,"type":544},"p-limit-1",{"text":959},"Эта статья представляет собой диагностическую схему, а не утверждение, что у каждого заикания одна и та же первопричина. Игровые движки, API, операционные системы, драйверы и графические конвейеры различаются.",{"id":961,"data":962,"type":544},"p-limit-2",{"text":963},"Метрики низкого FPS также следует интерпретировать в рамках методологии инструмента, который их создал. Сравнение разных инструментов может вводить в заблуждение, если статистические определения или конвейеры захвата различаются.",{"id":965,"data":966,"type":568},"h-conclusion",{"text":967,"level":47},"Заключение",{"id":969,"data":970,"type":544},"p-conclusion-1",{"text":971},"Если игра показывает высокий FPS, но всё равно ощущается плохо, перестаньте смотреть на среднее значение.",{"id":973,"data":974,"type":544},"p-conclusion-2",{"text":975},"Измеряйте время кадра. Изучайте медленный хвост. Выясните, когда происходят всплески. Сравните тайминги CPU и GPU. Затем измените одну переменную и повторите ту же нагрузку. Плавность — это не только то, сколько кадров может выдать ваша система. Это то, насколько стабильно эти кадры доходят до вас.",{"id":977,"data":978,"type":568},"h-faq",{"text":979,"level":47},"Часто задаваемые вопросы",{"id":981,"data":982,"type":981},"faq",{"items":983,"title":1008},[984,988,992,996,1000,1004],{"id":985,"answer":986,"question":987},"faq1","Потому что 120 FPS — это среднее значение. Повторяющиеся длинные кадры могут создавать видимые рывки, даже если множество быстрых кадров поддерживают высокое среднее.","Почему 120 FPS всё ещё ощущаются как заикание?",{"id":989,"answer":990,"question":991},"faq2","Время кадра — это время, необходимое для отдельного кадра, обычно измеряется в миллисекундах. Более низкое и более стабильное время кадра обычно указывает на более плавную подачу.","Что такое время кадра?",{"id":993,"answer":994,"question":995},"faq3","Это метрика, предназначенная для описания производительности среди самых медленных кадров. Точные реализации могут различаться в зависимости от инструмента, поэтому сравнивайте результаты, используя одну и ту же методологию тестирования.","Что означает 1% низкий FPS?",{"id":997,"answer":998,"question":999},"faq4","Ни одна из метрик не является достаточной сама по себе. Средний FPS описывает пропускную способность, в то время как метрики низкого FPS и графики времени кадра выявляют проблемы стабильности.","Является ли 1% низкий более важным, чем средний FPS?",{"id":1001,"answer":1002,"question":1003},"faq5","VRR может улучшить отображение переменной подачи кадров, но не может устранить длинный кадр, вызванный задержками CPU, GPU, потоковой передачи или другой рабочей нагрузки.","Может ли VRR исправить микро-заикание?",{"id":1005,"answer":1006,"question":1007},"faq6","Иногда ограничение может улучшить стабильность, оставляя запас для системы, но это следует проверять с помощью повторяемых захватов времени кадра, а не предполагать.","Стоит ли ограничивать FPS, чтобы уменьшить заикание?","FPS, время кадра и заикание",{"id":1010,"data":1011,"type":568},"h-glossary",{"text":1012,"level":47},"Глоссарий",{"id":1014,"data":1015,"type":1014},"glossary",{"title":1016,"entries":1017},"Ключевые термины производительности",[1018,1022,1025,1029,1033,1037],{"term":1019,"anchor":1020,"definition":1021},"Время кадра","frame-time","Время, связанное с созданием или представлением отдельного кадра, обычно выражается в миллисекундах.",{"term":615,"anchor":1023,"definition":1024},"average-fps","Средняя пропускная способность, описывающая количество кадров, созданных за измеренный интервал.",{"term":1026,"anchor":1027,"definition":1028},"1% низкий","one-percent-low","Метрика производительности медленных кадров. Точный расчёт может различаться в зависимости от инструмента; NVIDIA FrameView описывает свой 1% низкий как среднее значение самых медленных 1% кадров.",{"term":1030,"anchor":1031,"definition":1032},"Всплеск времени кадра","frame-time-spike","Кадр, длительность которого значительно превышает длительность окружающих кадров, часто воспринимается как рывок или заикание.",{"term":1034,"anchor":1035,"definition":1036},"GPU Busy","gpu-busy","Метрика тайминга PresentMon, используемая для сравнения времени выполнения GPU с более широким интервалом кадра и помогающая диагностировать баланс CPU\u002FGPU.",{"term":691,"anchor":1038,"definition":1039},"frame-time-stability-test","Рабочий процесс Figure Rocks для оценки средней пропускной способности, распределения времени кадра, метрик медленных кадров и таймингов CPU\u002FGPU в повторяемых условиях.",{"id":1041,"data":1042,"type":568},"h-sources",{"text":1043,"level":47},"Основные источники",{"id":1045,"data":1046,"type":1052},"src-intel-presentmon",{"link":1047,"meta":1048},"https:\u002F\u002Fgame.intel.com\u002Fus\u002Fintel-presentmon\u002F",{"image":1049,"title":1050,"description":1051},{"url":13},"Intel — PresentMon","Официальный инструмент мониторинга производительности Intel с графиками в реальном времени, процентилями, телеметрией GPU, GPU Busy и поддержкой основных графических API.","linkTool",{"id":1054,"data":1055,"type":1052},"src-nvidia-frameview",{"link":1056,"meta":1057},"https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fgeforce\u002Ftechnologies\u002Fframeview\u002F",{"image":1058,"title":1059,"description":1060},{"url":13},"NVIDIA — FrameView","Официальный инструмент NVIDIA для измерения частоты кадров, времени кадра, мощности и производительности на ватт с использованием аналитики на основе PresentMon.",{"id":1062,"data":1063,"type":1052},"src-nvidia-frameview-guide",{"link":1064,"meta":1065},"https:\u002F\u002Fimages.nvidia.com\u002Fcontent\u002Fgeforce\u002Ftechnologies\u002Fframeview\u002Fframeview-1-4-user-guide-web-version.pdf",{"image":1066,"title":1067,"description":1068},{"url":13},"NVIDIA — Руководство пользователя FrameView","Официальная документация, определяющая средний FPS, процентильные метрики, 1% низкий и 0.1% низкий и объясняющая, как стабильность связана с заиканием.",{"id":1070,"data":1071,"type":1052},"src-intel-optimization",{"link":1072,"meta":1073},"https:\u002F\u002Fwww.intel.com\u002Fcontent\u002Fwww\u002Fus\u002Fen\u002Fdeveloper\u002Farticles\u002Fguide\u002Flp-api-developer-optimization-guide.html",{"image":1074,"title":1075,"description":1076},{"url":13},"Intel — Руководство по разработке и оптимизации графических API","Официальные рекомендации Intel, охватывающие режимы представления, соображения по планированию CPU и использование PresentMon для анализа представления кадров.","2.31","Игра может сообщать о 120, 144 или даже 200 FPS и при этом ощущаться неровной. Это руководство объясняет, почему средний FPS может скрывать плохую доставку кадров, как время кадра и 1% минимумов выявляют рывки и как диагностировать, вызывает ли проблему CPU, GPU или другая часть конвейера.","\u002Fuploads\u002F2026\u002F09\u002Fwhy-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained-1790374675922-u9tp75.webp","why-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained-1790374675922-u9tp75","PUBLISHED","2026-09-25T18:17:00.000Z","2026-09-25T22:17:09.114Z","2026-09-25T22:22:05.283Z",{"en":1086,"de":1087,"sr":1088,"es":1089,"fr":1090,"it":1091,"ru":1092,"zh":1093},"\u002Fblog\u002Fwhy-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained","\u002Fde\u002Fblog\u002Fwhy-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained","\u002Fsr\u002Fblog\u002Fwhy-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained","\u002Fes\u002Fblog\u002Fwhy-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained","\u002Ffr\u002Fblog\u002Fwhy-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained","\u002Fit\u002Fblog\u002Fwhy-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained","\u002Fru\u002Fblog\u002Fwhy-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained","\u002Fzh\u002Fblog\u002Fwhy-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained",[1095,1099,1103],{"id":1096,"name":1097,"slug":1098},224,"Анализ времени кадра","frametime-analysis",{"id":1100,"name":1101,"slug":1102},49,"Равномерность кадров","frame-pacing",{"id":1104,"name":1105,"slug":1106},328,"Определите тип статтера","identify-stutter-type",{"id":283,"login":1108,"email":1109,"displayName":1110},"aleksandar","aleksandar@stajic.de","Aleksandar Stajic",[1112,1515],{"lang":8,"title":1113,"content":1114,"contentJson":1115,"excerpt":1514},"Why 120 FPS Can Still Feel Bad: Frame Time, 1% Lows and Stutter Explained","{\"time\":1790374470296,\"blocks\":[{\"id\":\"intro\",\"data\":{\"text\":\"A game can report 120, 144 or even 200 FPS and still feel rough. The reason is simple: average frame rate tells you how many frames were produced over time, but it does not tell you whether those frames arrived evenly. A few long frames can create visible hitching or micro-stutter even when the average FPS number looks excellent.\"},\"type\":\"paragraph\"},{\"id\":\"direct\",\"data\":{\"body\":\"\u003Cstrong>High average FPS does not guarantee smooth gameplay.\u003C\u002Fstrong> Smoothness depends on frame-time consistency: how evenly frames are delivered. To diagnose stutter, look at frame times, percentile or low-FPS metrics, and CPU\u002FGPU timing—not average FPS alone.\",\"title\":\"Direct answer\",\"variant\":\"info\"},\"type\":\"callout\"},{\"id\":\"model-note\",\"data\":{\"body\":\"The Smoothness Triangle and Frame-Time Stability Test below are practical Figure Rocks models. They are not formal Intel, NVIDIA or Microsoft terminology.\",\"title\":\"The model used in this article\",\"variant\":\"note\"},\"type\":\"callout\"},{\"id\":\"toc\",\"data\":{\"title\":\"Contents\",\"maxLevel\":3,\"minLevel\":2},\"type\":\"tableOfContents\"},{\"id\":\"h-fps-vs-ft\",\"data\":{\"text\":\"FPS is an average; frame time is the rhythm\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-fps-1\",\"data\":{\"text\":\"FPS tells you how many frames are completed per second. Frame time tells you how long an individual frame takes.\"},\"type\":\"paragraph\"},{\"id\":\"p-fps-2\",\"data\":{\"text\":\"The rough conversion is simple: frame time in milliseconds is approximately 1000 divided by FPS. At 60 FPS, the frame budget is about 16.7 ms. At 120 FPS it is about 8.3 ms. At 144 FPS it is about 6.9 ms.\"},\"type\":\"paragraph\"},{\"id\":\"p-fps-3\",\"data\":{\"text\":\"But those numbers are only meaningful if frame delivery is reasonably consistent. A sequence of 7 ms, 7 ms, 7 ms, 35 ms, 7 ms, 7 ms can still average to a high FPS while producing a noticeable hitch.\"},\"type\":\"paragraph\"},{\"id\":\"h-triangle\",\"data\":{\"text\":\"The Smoothness Triangle\",\"level\":2},\"type\":\"header\"},{\"id\":\"triangle-flow\",\"data\":{\"steps\":[{\"label\":\"1. Throughput\",\"description\":\"Average FPS: how many frames the system produces over time.\"},{\"label\":\"2. Consistency\",\"description\":\"Frame-time distribution: whether frames arrive with a stable cadence or contain long outliers.\"},{\"label\":\"3. Responsiveness\",\"description\":\"Latency: how long it takes for input and game work to result in a visible frame.\"}],\"title\":\"Three different things determine how fast a game feels\",\"orientation\":\"auto\"},\"type\":\"processFlow\"},{\"id\":\"p-triangle\",\"data\":{\"text\":\"A system can be strong in one corner and weak in another. High FPS with unstable frame times can feel stuttery. Stable rendering with very high latency can feel smooth but sluggish. Good performance tuning has to identify which corner is actually failing.\"},\"type\":\"paragraph\"},{\"id\":\"h-average\",\"data\":{\"text\":\"Why average FPS hides stutter\",\"level\":2},\"type\":\"header\"},{\"id\":\"same-average\",\"data\":{\"rows\":[{\"id\":\"avg\",\"label\":\"Average FPS\",\"values\":{\"stable\":\"120 FPS\",\"unstable\":\"120 FPS\"}},{\"id\":\"normal\",\"label\":\"Most frame times\",\"values\":{\"stable\":\"Around 8–9 ms\",\"unstable\":\"Mostly 5–7 ms\"}},{\"id\":\"outliers\",\"label\":\"Slow frames\",\"values\":{\"stable\":\"Few meaningful spikes\",\"unstable\":\"Repeated 25–50 ms spikes\"}},{\"id\":\"feel\",\"label\":\"Player experience\",\"values\":{\"stable\":\"Consistent motion\",\"unstable\":\"Hitches despite the high average\"}}],\"title\":\"Two sessions can have the same average FPS and feel different\",\"layout\":\"table\",\"columns\":[{\"id\":\"stable\",\"label\":\"Stable session\"},{\"id\":\"unstable\",\"label\":\"Unstable session\"}]},\"type\":\"comparison\"},{\"id\":\"p-average-1\",\"data\":{\"text\":\"The unstable session can compensate for long frames by rendering many very fast frames between spikes. The average stays high, but the player notices the spikes rather than the arithmetic mean.\"},\"type\":\"paragraph\"},{\"id\":\"h-onepercent\",\"data\":{\"text\":\"What 1% lows are trying to show\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-low-1\",\"data\":{\"text\":\"Low-FPS and percentile metrics exist because average FPS alone cannot describe the slow end of the frame distribution.\"},\"type\":\"paragraph\"},{\"id\":\"p-low-2\",\"data\":{\"text\":\"NVIDIA FrameView reports average FPS together with 1% Low and 0.1% Low metrics. Its documentation describes 1% Low as the average of the slowest 1% of frames, and notes that the closer the low-FPS value is to the average, the more consistent the experience tends to be.\"},\"type\":\"paragraph\"},{\"id\":\"p-low-3\",\"data\":{\"text\":\"NVIDIA also exposes percentile-based metrics such as the frame rate separating the slowest 1% of frames from the faster 99%. These are related concepts, but not every benchmark tool implements or labels low-FPS statistics in exactly the same way.\"},\"type\":\"paragraph\"},{\"id\":\"low-warning\",\"data\":{\"body\":\"Different tools can calculate, aggregate or label low-FPS and percentile statistics differently. Compare results from the \u003Cstrong>same tool and methodology\u003C\u002Fstrong> whenever possible.\",\"title\":\"Do not compare every “1% low” number as if the formula were universal\",\"variant\":\"warning\"},\"type\":\"callout\"},{\"id\":\"h-graph\",\"data\":{\"text\":\"Frame-time graphs are often more useful than one summary number\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-graph-1\",\"data\":{\"text\":\"A frame-time graph shows the timing of frames across the capture. A flat or narrow band usually indicates consistent delivery. Tall isolated spikes reveal hitches. Repeating waves can point to periodic background work, streaming, synchronization or another recurring workload.\"},\"type\":\"paragraph\"},{\"id\":\"p-graph-2\",\"data\":{\"text\":\"Intel PresentMon is designed around this type of analysis. Intel's current tool can show real-time performance graphs, percentiles, moving-window averages and GPU telemetry, and it supports DirectX, OpenGL and Vulkan applications.\"},\"type\":\"paragraph\"},{\"id\":\"p-graph-3\",\"data\":{\"text\":\"NVIDIA FrameView likewise measures frame rate and frame time and can write detailed capture data to logs for later analysis.\"},\"type\":\"paragraph\"},{\"id\":\"h-test\",\"data\":{\"text\":\"The Frame-Time Stability Test\",\"level\":2},\"type\":\"header\"},{\"id\":\"test-flow\",\"data\":{\"steps\":[{\"label\":\"1. Capture a repeatable scene\",\"description\":\"Use the same route, benchmark, save point or gameplay sequence so different runs are comparable.\"},{\"label\":\"2. Record average FPS\",\"description\":\"Treat it as throughput, not as the final smoothness verdict.\"},{\"label\":\"3. Inspect frame-time consistency\",\"description\":\"Look for isolated spikes, repeating spikes, wide variance or long slow-frame clusters.\"},{\"label\":\"4. Check low-FPS or percentile metrics\",\"description\":\"Large gaps between average and slow-frame metrics are a warning that delivery is inconsistent.\"},{\"label\":\"5. Compare CPU and GPU timing\",\"description\":\"Determine whether the slow frame originates before the GPU, on the GPU, or from another part of the pipeline.\"},{\"label\":\"6. Change one variable at a time\",\"description\":\"Test frame cap, graphics setting, background process, shader state, storage path or driver\u002Fgame setting independently.\"},{\"label\":\"7. Repeat the same capture\",\"description\":\"A fix is meaningful only if the frame-time distribution improves under comparable conditions.\"}],\"title\":\"Diagnose whether high FPS is hiding stutter\",\"orientation\":\"auto\"},\"type\":\"processFlow\"},{\"id\":\"h-bottleneck\",\"data\":{\"text\":\"CPU bottleneck and GPU bottleneck do not look identical\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-bottle-1\",\"data\":{\"text\":\"A low frame rate does not tell you which processor is responsible for the delay. The CPU prepares game and rendering work; the GPU executes graphics work. Either side can become the pacing limit.\"},\"type\":\"paragraph\"},{\"id\":\"p-bottle-2\",\"data\":{\"text\":\"Intel PresentMon's GPU Busy metric is specifically intended to help evaluate the relationship between GPU execution time and total frame time. This can help distinguish frames where the GPU is occupied for most of the interval from frames where a large part of the delay occurs elsewhere.\"},\"type\":\"paragraph\"},{\"id\":\"bottleneck-table\",\"data\":{\"rows\":[{\"id\":\"gpu\",\"label\":\"GPU-bound\",\"values\":{\"meaning\":\"The graphics workload is consuming most of the available frame budget\",\"pattern\":\"GPU busy time is close to the frame interval\"}},{\"id\":\"cpu\",\"label\":\"CPU \u002F pipeline constrained\",\"values\":{\"meaning\":\"The delay may be before GPU execution or elsewhere in the presentation pipeline\",\"pattern\":\"Frame time grows while GPU busy time remains materially lower\"}},{\"id\":\"spike\",\"label\":\"Intermittent event\",\"values\":{\"meaning\":\"Streaming, shader compilation, background work, asset loading or another transient event may be involved\",\"pattern\":\"Mostly stable timing with isolated large spikes\"}}],\"title\":\"Simplified timing patterns\",\"layout\":\"table\",\"columns\":[{\"id\":\"pattern\",\"label\":\"Typical timing pattern\"},{\"id\":\"meaning\",\"label\":\"What it can suggest\"}]},\"type\":\"comparison\"},{\"id\":\"bottle-note\",\"data\":{\"body\":\"Timing patterns narrow the search space. They do not prove a specific root cause by themselves.\",\"title\":\"This is diagnostic evidence, not an automatic verdict\",\"variant\":\"note\"},\"type\":\"callout\"},{\"id\":\"h-cap\",\"data\":{\"text\":\"Why a frame cap can sometimes feel smoother than maximum FPS\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-cap-1\",\"data\":{\"text\":\"Running a game at the highest possible uncapped FPS can keep one part of the system near saturation. In some workloads, leaving headroom can reduce timing volatility and produce a more stable cadence.\"},\"type\":\"paragraph\"},{\"id\":\"p-cap-2\",\"data\":{\"text\":\"That does not mean every game should be capped to the same number. The useful test is empirical: capture the same workload uncapped and at one or more sensible caps, then compare frame-time stability and latency.\"},\"type\":\"paragraph\"},{\"id\":\"p-cap-3\",\"data\":{\"text\":\"A lower average with substantially tighter frame delivery can feel better than a higher average punctuated by frequent spikes.\"},\"type\":\"paragraph\"},{\"id\":\"h-causes\",\"data\":{\"text\":\"Common causes of high-FPS stutter\",\"level\":2},\"type\":\"header\"},{\"id\":\"causes-table\",\"data\":{\"content\":[[\"Cause class\",\"What you may see\",\"What to test\"],[\"Shader or pipeline compilation\",\"Spikes tied to first-time effects, locations or actions\",\"Repeat the same sequence and compare later passes\"],[\"Asset \u002F world streaming\",\"Spikes when entering areas or loading new content\",\"Storage, texture settings, world-streaming behavior\"],[\"CPU scheduling \u002F background work\",\"Irregular spikes unrelated to GPU load\",\"Background processes, overlays, recording, CPU saturation\"],[\"GPU saturation\",\"Consistently high GPU execution time\",\"Lower expensive graphics settings or test a frame cap\"],[\"Memory pressure\",\"Increasing hitching under heavy VRAM\u002FRAM use\",\"Texture level, resolution, background applications, working-set behavior\"],[\"Presentation \u002F synchronization\",\"Cadence problems around refresh or presentation modes\",\"V-Sync, VRR, frame cap and display-mode combinations\"],[\"Driver or game regression\",\"Problem appears after a specific update\",\"Compare versions or official known-issue notes where practical\"]],\"stretched\":false,\"withHeadings\":true},\"type\":\"table\"},{\"id\":\"h-shader\",\"data\":{\"text\":\"Shader compilation is a special case\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-shader-1\",\"data\":{\"text\":\"Some stutter is not a simple steady-state performance problem. A workload can run comfortably at high FPS until the game performs expensive work that occurs only at particular moments.\"},\"type\":\"paragraph\"},{\"id\":\"p-shader-2\",\"data\":{\"text\":\"Shader or pipeline compilation is one example. If a hitch appears the first time a specific effect or area is encountered but becomes smaller or disappears on later passes, that pattern is different from a GPU that is continuously too slow.\"},\"type\":\"paragraph\"},{\"id\":\"p-shader-3\",\"data\":{\"text\":\"This is why repeatable captures matter. One average number over an entire session can mix steady rendering and one-time events into a result that explains neither.\"},\"type\":\"paragraph\"},{\"id\":\"h-vrr\",\"data\":{\"text\":\"VRR does not repair bad frame times\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-vrr-1\",\"data\":{\"text\":\"Variable refresh rate can align display refresh timing more closely with variable frame delivery and reduce visible tearing or judder within its operating range.\"},\"type\":\"paragraph\"},{\"id\":\"p-vrr-2\",\"data\":{\"text\":\"But VRR does not make a 40 ms frame become an 8 ms frame. A large rendering or CPU stall remains a large stall. Display technology can improve presentation; it cannot remove work that delayed the frame in the first place.\"},\"type\":\"paragraph\"},{\"id\":\"h-pointone\",\"data\":{\"text\":\"Why 0.1% lows can become noisy\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-pointone-1\",\"data\":{\"text\":\"Metrics focused on a very small fraction of frames are useful for exposing severe outliers, but they also become sensitive to capture duration and one-off events.\"},\"type\":\"paragraph\"},{\"id\":\"p-pointone-2\",\"data\":{\"text\":\"A short capture containing one loading transition may produce a dramatically different extreme-low result than a longer, repeatable gameplay run. That does not make the metric useless; it means the test methodology matters.\"},\"type\":\"paragraph\"},{\"id\":\"metrics-rule\",\"data\":{\"body\":\"Average FPS answers throughput. Low-FPS and percentile metrics describe the slow tail. The frame-time graph shows \u003Cstrong>when\u003C\u002Fstrong> the bad frames happened. Use them together.\",\"title\":\"Use the metric to answer a question\",\"variant\":\"success\"},\"type\":\"callout\"},{\"id\":\"h-protocol\",\"data\":{\"text\":\"A practical benchmark protocol\",\"level\":2},\"type\":\"header\"},{\"id\":\"protocol-flow\",\"data\":{\"steps\":[{\"label\":\"Warm up\",\"description\":\"Let the game, shaders and assets reach a reasonably repeatable state when that matches the question you are testing.\"},{\"label\":\"Fix the conditions\",\"description\":\"Use the same resolution, settings, frame cap, location and workload.\"},{\"label\":\"Capture long enough\",\"description\":\"Avoid judging the slow tail from a tiny sample unless the event itself is what you want to measure.\"},{\"label\":\"Repeat\",\"description\":\"Run the same test multiple times to separate repeatable behavior from random background events.\"},{\"label\":\"Compare distributions\",\"description\":\"Look at average FPS, slow-frame metrics and the frame-time trace.\"},{\"label\":\"Record the environment\",\"description\":\"Game build, driver, operating system, hardware and major configuration changes matter for later comparisons.\"}],\"title\":\"Measure a game without fooling yourself\",\"orientation\":\"auto\"},\"type\":\"processFlow\"},{\"id\":\"h-scorecard\",\"data\":{\"text\":\"The Frame-Time Stability Scorecard\",\"level\":2},\"type\":\"header\"},{\"id\":\"scorecard\",\"data\":{\"rows\":[{\"id\":\"average\",\"label\":\"Average throughput\",\"values\":{\"good\":\"Meets your performance target\",\"warning\":\"Average hides repeated drops below the useful range\"}},{\"id\":\"tail\",\"label\":\"Slow-frame tail\",\"values\":{\"good\":\"Reasonably close to average for the workload\",\"warning\":\"Large persistent gap between average and low-FPS metrics\"}},{\"id\":\"trace\",\"label\":\"Frame-time trace\",\"values\":{\"good\":\"Narrow, mostly stable band\",\"warning\":\"Frequent tall spikes or recurring oscillation\"}},{\"id\":\"repeat\",\"label\":\"Repeatability\",\"values\":{\"good\":\"Similar pattern across comparable runs\",\"warning\":\"Result changes wildly between identical tests\"}},{\"id\":\"cause\",\"label\":\"Timing diagnosis\",\"values\":{\"good\":\"CPU\u002FGPU behavior matches the suspected constraint\",\"warning\":\"Optimization is being applied without identifying the bottleneck\"}}],\"title\":\"What to look for before calling a game “smooth”\",\"layout\":\"table\",\"columns\":[{\"id\":\"good\",\"label\":\"Healthy signal\"},{\"id\":\"warning\",\"label\":\"Warning signal\"}]},\"type\":\"comparison\"},{\"id\":\"h-change\",\"data\":{\"text\":\"What would change this answer?\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-change-1\",\"data\":{\"text\":\"The exact metrics available depend on the operating system, graphics API, hardware and measurement tool. Future presentation systems or frame-generation pipelines can also require additional distinctions between rendered, generated and displayed frames.\"},\"type\":\"paragraph\"},{\"id\":\"p-change-2\",\"data\":{\"text\":\"The core principle is unlikely to change: a throughput average cannot fully describe timing consistency. As long as interactive graphics are delivered as a sequence of frames, the distribution and timing of those frames matter.\"},\"type\":\"paragraph\"},{\"id\":\"h-limit\",\"data\":{\"text\":\"Limitations\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-limit-1\",\"data\":{\"text\":\"This article is a diagnostic framework, not a claim that every stutter has the same root cause. Game engines, APIs, operating systems, drivers and rendering pipelines differ.\"},\"type\":\"paragraph\"},{\"id\":\"p-limit-2\",\"data\":{\"text\":\"Low-FPS metrics should also be interpreted within the methodology of the tool that produced them. Cross-tool comparisons can be misleading when the statistical definitions or capture pipelines differ.\"},\"type\":\"paragraph\"},{\"id\":\"h-conclusion\",\"data\":{\"text\":\"Conclusion\",\"level\":2},\"type\":\"header\"},{\"id\":\"p-conclusion-1\",\"data\":{\"text\":\"If a game shows high FPS but still feels bad, stop staring at the average.\"},\"type\":\"paragraph\"},{\"id\":\"p-conclusion-2\",\"data\":{\"text\":\"Measure the frame times. Inspect the slow tail. Find out when the spikes happen. Compare CPU and GPU timing. Then change one variable and repeat the same workload. Smoothness is not just how many frames your system can produce. It is how consistently those frames reach you.\"},\"type\":\"paragraph\"},{\"id\":\"h-faq\",\"data\":{\"text\":\"FAQ\",\"level\":2},\"type\":\"header\"},{\"id\":\"faq\",\"data\":{\"items\":[{\"id\":\"faq1\",\"answer\":\"Because 120 FPS is an average. Repeated long frames can create visible hitches even while many fast frames keep the average high.\",\"question\":\"Why does 120 FPS still feel stuttery?\"},{\"id\":\"faq2\",\"answer\":\"Frame time is the time required for an individual frame, usually measured in milliseconds. Lower and more consistent frame times generally indicate smoother delivery.\",\"question\":\"What is frame time?\"},{\"id\":\"faq3\",\"answer\":\"It is a metric intended to describe performance among the slowest frames. Exact implementations can differ by tool, so compare results using the same benchmark methodology.\",\"question\":\"What does 1% low FPS mean?\"},{\"id\":\"faq4\",\"answer\":\"Neither metric is sufficient by itself. Average FPS describes throughput, while low-FPS metrics and frame-time graphs expose consistency problems.\",\"question\":\"Is 1% low more important than average FPS?\"},{\"id\":\"faq5\",\"answer\":\"VRR can improve how variable frame delivery is presented, but it cannot eliminate a long frame caused by CPU, GPU, streaming or other workload stalls.\",\"question\":\"Can VRR fix micro-stutter?\"},{\"id\":\"faq6\",\"answer\":\"Sometimes a cap can improve consistency by leaving system headroom, but it should be tested with repeatable frame-time captures rather than assumed.\",\"question\":\"Should I cap FPS to reduce stutter?\"}],\"title\":\"FPS, frame time and stutter\"},\"type\":\"faq\"},{\"id\":\"h-glossary\",\"data\":{\"text\":\"Glossary\",\"level\":2},\"type\":\"header\"},{\"id\":\"glossary\",\"data\":{\"title\":\"Key performance terms\",\"entries\":[{\"term\":\"Frame time\",\"anchor\":\"frame-time\",\"definition\":\"The time associated with producing or presenting an individual frame, usually expressed in milliseconds.\"},{\"term\":\"Average FPS\",\"anchor\":\"average-fps\",\"definition\":\"A throughput average describing the number of frames produced over a measured interval.\"},{\"term\":\"1% Low\",\"anchor\":\"one-percent-low\",\"definition\":\"A slow-frame performance metric. Exact calculation can differ by tool; NVIDIA FrameView describes its 1% Low as the average of the slowest 1% of frames.\"},{\"term\":\"Frame-time spike\",\"anchor\":\"frame-time-spike\",\"definition\":\"A frame whose duration is substantially longer than surrounding frames, often perceived as a hitch or stutter.\"},{\"term\":\"GPU Busy\",\"anchor\":\"gpu-busy\",\"definition\":\"A PresentMon timing metric used to compare GPU execution time with the broader frame interval and help diagnose CPU\u002FGPU balance.\"},{\"term\":\"Frame-Time Stability Test\",\"anchor\":\"frame-time-stability-test\",\"definition\":\"A Figure Rocks workflow for evaluating average throughput, frame-time distribution, slow-frame metrics and CPU\u002FGPU timing under repeatable conditions.\"}]},\"type\":\"glossary\"},{\"id\":\"h-sources\",\"data\":{\"text\":\"Primary sources\",\"level\":2},\"type\":\"header\"},{\"id\":\"src-intel-presentmon\",\"data\":{\"link\":\"https:\u002F\u002Fgame.intel.com\u002Fus\u002Fintel-presentmon\u002F\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Intel — PresentMon\",\"description\":\"Official Intel performance-monitoring tool with real-time graphs, percentiles, GPU telemetry, GPU Busy and support for major graphics APIs.\"}},\"type\":\"linkTool\"},{\"id\":\"src-nvidia-frameview\",\"data\":{\"link\":\"https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fgeforce\u002Ftechnologies\u002Fframeview\u002F\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"NVIDIA — FrameView\",\"description\":\"Official NVIDIA tool for measuring frame rate, frame time, power and performance-per-watt, using PresentMon-based analytics.\"}},\"type\":\"linkTool\"},{\"id\":\"src-nvidia-frameview-guide\",\"data\":{\"link\":\"https:\u002F\u002Fimages.nvidia.com\u002Fcontent\u002Fgeforce\u002Ftechnologies\u002Fframeview\u002Fframeview-1-4-user-guide-web-version.pdf\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"NVIDIA — FrameView User Guide\",\"description\":\"Official documentation defining average FPS, percentile metrics, 1% Low and 0.1% Low and explaining how consistency relates to stutter.\"}},\"type\":\"linkTool\"},{\"id\":\"src-intel-optimization\",\"data\":{\"link\":\"https:\u002F\u002Fwww.intel.com\u002Fcontent\u002Fwww\u002Fus\u002Fen\u002Fdeveloper\u002Farticles\u002Fguide\u002Flp-api-developer-optimization-guide.html\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Intel — Graphics API Developer and Optimization Guide\",\"description\":\"Official Intel guidance covering presentation modes, CPU scheduling considerations and the use of PresentMon for frame-presentation analysis.\"}},\"type\":\"linkTool\"}],\"version\":\"2.31.0\"}",{"time":1116,"blocks":1117,"version":1513},1790374470296,[1118,1121,1125,1129,1132,1135,1138,1141,1144,1147,1160,1163,1166,1187,1190,1193,1196,1199,1202,1206,1209,1212,1215,1218,1221,1246,1249,1252,1255,1273,1277,1280,1283,1286,1289,1292,1327,1330,1333,1336,1339,1342,1345,1348,1351,1354,1357,1361,1364,1386,1389,1413,1416,1419,1422,1425,1428,1431,1434,1437,1440,1443,1465,1468,1488,1491,1496,1501,1507],{"id":541,"data":1119,"type":544},{"text":1120},"A game can report 120, 144 or even 200 FPS and still feel rough. The reason is simple: average frame rate tells you how many frames were produced over time, but it does not tell you whether those frames arrived evenly. A few long frames can create visible hitching or micro-stutter even when the average FPS number looks excellent.",{"id":546,"data":1122,"type":551},{"body":1123,"title":1124,"variant":550},"\u003Cstrong>High average FPS does not guarantee smooth gameplay.\u003C\u002Fstrong> Smoothness depends on frame-time consistency: how evenly frames are delivered. To diagnose stutter, look at frame times, percentile or low-FPS metrics, and CPU\u002FGPU timing—not average FPS alone.","Direct answer",{"id":553,"data":1126,"type":551},{"body":1127,"title":1128,"variant":557},"The Smoothness Triangle and Frame-Time Stability Test below are practical Figure Rocks models. They are not formal Intel, NVIDIA or Microsoft terminology.","The model used in this article",{"id":559,"data":1130,"type":563},{"title":1131,"maxLevel":562,"minLevel":47},"Contents",{"id":565,"data":1133,"type":568},{"text":1134,"level":47},"FPS is an average; frame time is the rhythm",{"id":570,"data":1136,"type":544},{"text":1137},"FPS tells you how many frames are completed per second. Frame time tells you how long an individual frame takes.",{"id":574,"data":1139,"type":544},{"text":1140},"The rough conversion is simple: frame time in milliseconds is approximately 1000 divided by FPS. At 60 FPS, the frame budget is about 16.7 ms. At 120 FPS it is about 8.3 ms. At 144 FPS it is about 6.9 ms.",{"id":578,"data":1142,"type":544},{"text":1143},"But those numbers are only meaningful if frame delivery is reasonably consistent. A sequence of 7 ms, 7 ms, 7 ms, 35 ms, 7 ms, 7 ms can still average to a high FPS while producing a noticeable hitch.",{"id":582,"data":1145,"type":568},{"text":1146,"level":47},"The Smoothness Triangle",{"id":586,"data":1148,"type":600},{"steps":1149,"title":1159,"orientation":599},[1150,1153,1156],{"label":1151,"description":1152},"1. Throughput","Average FPS: how many frames the system produces over time.",{"label":1154,"description":1155},"2. Consistency","Frame-time distribution: whether frames arrive with a stable cadence or contain long outliers.",{"label":1157,"description":1158},"3. Responsiveness","Latency: how long it takes for input and game work to result in a visible frame.","Three different things determine how fast a game feels",{"id":602,"data":1161,"type":544},{"text":1162},"A system can be strong in one corner and weak in another. High FPS with unstable frame times can feel stuttery. Stable rendering with very high latency can feel smooth but sluggish. Good performance tuning has to identify which corner is actually failing.",{"id":606,"data":1164,"type":568},{"text":1165,"level":47},"Why average FPS hides stutter",{"id":610,"data":1167,"type":645},{"rows":1168,"title":1181,"layout":637,"columns":1182},[1169,1172,1175,1178],{"id":614,"label":1170,"values":1171},"Average FPS",{"stable":617,"unstable":617},{"id":619,"label":1173,"values":1174},"Most frame times",{"stable":622,"unstable":623},{"id":625,"label":1176,"values":1177},"Slow frames",{"stable":628,"unstable":629},{"id":631,"label":1179,"values":1180},"Player experience",{"stable":634,"unstable":635},"Two sessions can have the same average FPS and feel different",[1183,1185],{"id":640,"label":1184},"Stable session",{"id":643,"label":1186},"Unstable session",{"id":647,"data":1188,"type":544},{"text":1189},"The unstable session can compensate for long frames by rendering many very fast frames between spikes. The average stays high, but the player notices the spikes rather than the arithmetic mean.",{"id":651,"data":1191,"type":568},{"text":1192,"level":47},"What 1% lows are trying to show",{"id":655,"data":1194,"type":544},{"text":1195},"Low-FPS and percentile metrics exist because average FPS alone cannot describe the slow end of the frame distribution.",{"id":659,"data":1197,"type":544},{"text":1198},"NVIDIA FrameView reports average FPS together with 1% Low and 0.1% Low metrics. Its documentation describes 1% Low as the average of the slowest 1% of frames, and notes that the closer the low-FPS value is to the average, the more consistent the experience tends to be.",{"id":663,"data":1200,"type":544},{"text":1201},"NVIDIA also exposes percentile-based metrics such as the frame rate separating the slowest 1% of frames from the faster 99%. These are related concepts, but not every benchmark tool implements or labels low-FPS statistics in exactly the same way.",{"id":667,"data":1203,"type":551},{"body":1204,"title":1205,"variant":671},"Different tools can calculate, aggregate or label low-FPS and percentile statistics differently. Compare results from the \u003Cstrong>same tool and methodology\u003C\u002Fstrong> whenever possible.","Do not compare every “1% low” number as if the formula were universal",{"id":673,"data":1207,"type":568},{"text":1208,"level":47},"Frame-time graphs are often more useful than one summary number",{"id":677,"data":1210,"type":544},{"text":1211},"A frame-time graph shows the timing of frames across the capture. A flat or narrow band usually indicates consistent delivery. Tall isolated spikes reveal hitches. Repeating waves can point to periodic background work, streaming, synchronization or another recurring workload.",{"id":681,"data":1213,"type":544},{"text":1214},"Intel PresentMon is designed around this type of analysis. Intel's current tool can show real-time performance graphs, percentiles, moving-window averages and GPU telemetry, and it supports DirectX, OpenGL and Vulkan applications.",{"id":685,"data":1216,"type":544},{"text":1217},"NVIDIA FrameView likewise measures frame rate and frame time and can write detailed capture data to logs for later analysis.",{"id":689,"data":1219,"type":568},{"text":1220,"level":47},"The Frame-Time Stability Test",{"id":693,"data":1222,"type":600},{"steps":1223,"title":1245,"orientation":599},[1224,1227,1230,1233,1236,1239,1242],{"label":1225,"description":1226},"1. Capture a repeatable scene","Use the same route, benchmark, save point or gameplay sequence so different runs are comparable.",{"label":1228,"description":1229},"2. Record average FPS","Treat it as throughput, not as the final smoothness verdict.",{"label":1231,"description":1232},"3. Inspect frame-time consistency","Look for isolated spikes, repeating spikes, wide variance or long slow-frame clusters.",{"label":1234,"description":1235},"4. Check low-FPS or percentile metrics","Large gaps between average and slow-frame metrics are a warning that delivery is inconsistent.",{"label":1237,"description":1238},"5. Compare CPU and GPU timing","Determine whether the slow frame originates before the GPU, on the GPU, or from another part of the pipeline.",{"label":1240,"description":1241},"6. Change one variable at a time","Test frame cap, graphics setting, background process, shader state, storage path or driver\u002Fgame setting independently.",{"label":1243,"description":1244},"7. Repeat the same capture","A fix is meaningful only if the frame-time distribution improves under comparable conditions.","Diagnose whether high FPS is hiding stutter",{"id":719,"data":1247,"type":568},{"text":1248,"level":47},"CPU bottleneck and GPU bottleneck do not look identical",{"id":723,"data":1250,"type":544},{"text":1251},"A low frame rate does not tell you which processor is responsible for the delay. The CPU prepares game and rendering work; the GPU executes graphics work. Either side can become the pacing limit.",{"id":727,"data":1253,"type":544},{"text":1254},"Intel PresentMon's GPU Busy metric is specifically intended to help evaluate the relationship between GPU execution time and total frame time. This can help distinguish frames where the GPU is occupied for most of the interval from frames where a large part of the delay occurs elsewhere.",{"id":731,"data":1256,"type":645},{"rows":1257,"title":1267,"layout":637,"columns":1268},[1258,1261,1264],{"id":735,"label":1259,"values":1260},"GPU-bound",{"meaning":738,"pattern":739},{"id":741,"label":1262,"values":1263},"CPU \u002F pipeline constrained",{"meaning":744,"pattern":745},{"id":747,"label":1265,"values":1266},"Intermittent event",{"meaning":750,"pattern":751},"Simplified timing patterns",[1269,1271],{"id":755,"label":1270},"Typical timing pattern",{"id":758,"label":1272},"What it can suggest",{"id":761,"data":1274,"type":551},{"body":1275,"title":1276,"variant":557},"Timing patterns narrow the search space. They do not prove a specific root cause by themselves.","This is diagnostic evidence, not an automatic verdict",{"id":766,"data":1278,"type":568},{"text":1279,"level":47},"Why a frame cap can sometimes feel smoother than maximum FPS",{"id":770,"data":1281,"type":544},{"text":1282},"Running a game at the highest possible uncapped FPS can keep one part of the system near saturation. In some workloads, leaving headroom can reduce timing volatility and produce a more stable cadence.",{"id":774,"data":1284,"type":544},{"text":1285},"That does not mean every game should be capped to the same number. The useful test is empirical: capture the same workload uncapped and at one or more sensible caps, then compare frame-time stability and latency.",{"id":778,"data":1287,"type":544},{"text":1288},"A lower average with substantially tighter frame delivery can feel better than a higher average punctuated by frequent spikes.",{"id":782,"data":1290,"type":568},{"text":1291,"level":47},"Common causes of high-FPS stutter",{"id":786,"data":1293,"type":637},{"content":1294,"stretched":821,"withHeadings":15},[1295,1299,1303,1307,1311,1315,1319,1323],[1296,1297,1298],"Cause class","What you may see","What to test",[1300,1301,1302],"Shader or pipeline compilation","Spikes tied to first-time effects, locations or actions","Repeat the same sequence and compare later passes",[1304,1305,1306],"Asset \u002F world streaming","Spikes when entering areas or loading new content","Storage, texture settings, world-streaming behavior",[1308,1309,1310],"CPU scheduling \u002F background work","Irregular spikes unrelated to GPU load","Background processes, overlays, recording, CPU saturation",[1312,1313,1314],"GPU saturation","Consistently high GPU execution time","Lower expensive graphics settings or test a frame cap",[1316,1317,1318],"Memory pressure","Increasing hitching under heavy VRAM\u002FRAM use","Texture level, resolution, background applications, working-set behavior",[1320,1321,1322],"Presentation \u002F synchronization","Cadence problems around refresh or presentation modes","V-Sync, VRR, frame cap and display-mode combinations",[1324,1325,1326],"Driver or game regression","Problem appears after a specific update","Compare versions or official known-issue notes where practical",{"id":823,"data":1328,"type":568},{"text":1329,"level":47},"Shader compilation is a special case",{"id":827,"data":1331,"type":544},{"text":1332},"Some stutter is not a simple steady-state performance problem. A workload can run comfortably at high FPS until the game performs expensive work that occurs only at particular moments.",{"id":831,"data":1334,"type":544},{"text":1335},"Shader or pipeline compilation is one example. If a hitch appears the first time a specific effect or area is encountered but becomes smaller or disappears on later passes, that pattern is different from a GPU that is continuously too slow.",{"id":835,"data":1337,"type":544},{"text":1338},"This is why repeatable captures matter. One average number over an entire session can mix steady rendering and one-time events into a result that explains neither.",{"id":839,"data":1340,"type":568},{"text":1341,"level":47},"VRR does not repair bad frame times",{"id":843,"data":1343,"type":544},{"text":1344},"Variable refresh rate can align display refresh timing more closely with variable frame delivery and reduce visible tearing or judder within its operating range.",{"id":847,"data":1346,"type":544},{"text":1347},"But VRR does not make a 40 ms frame become an 8 ms frame. A large rendering or CPU stall remains a large stall. Display technology can improve presentation; it cannot remove work that delayed the frame in the first place.",{"id":851,"data":1349,"type":568},{"text":1350,"level":47},"Why 0.1% lows can become noisy",{"id":855,"data":1352,"type":544},{"text":1353},"Metrics focused on a very small fraction of frames are useful for exposing severe outliers, but they also become sensitive to capture duration and one-off events.",{"id":859,"data":1355,"type":544},{"text":1356},"A short capture containing one loading transition may produce a dramatically different extreme-low result than a longer, repeatable gameplay run. That does not make the metric useless; it means the test methodology matters.",{"id":863,"data":1358,"type":551},{"body":1359,"title":1360,"variant":867},"Average FPS answers throughput. Low-FPS and percentile metrics describe the slow tail. The frame-time graph shows \u003Cstrong>when\u003C\u002Fstrong> the bad frames happened. Use them together.","Use the metric to answer a question",{"id":869,"data":1362,"type":568},{"text":1363,"level":47},"A practical benchmark protocol",{"id":873,"data":1365,"type":600},{"steps":1366,"title":1385,"orientation":599},[1367,1370,1373,1376,1379,1382],{"label":1368,"description":1369},"Warm up","Let the game, shaders and assets reach a reasonably repeatable state when that matches the question you are testing.",{"label":1371,"description":1372},"Fix the conditions","Use the same resolution, settings, frame cap, location and workload.",{"label":1374,"description":1375},"Capture long enough","Avoid judging the slow tail from a tiny sample unless the event itself is what you want to measure.",{"label":1377,"description":1378},"Repeat","Run the same test multiple times to separate repeatable behavior from random background events.",{"label":1380,"description":1381},"Compare distributions","Look at average FPS, slow-frame metrics and the frame-time trace.",{"label":1383,"description":1384},"Record the environment","Game build, driver, operating system, hardware and major configuration changes matter for later comparisons.","Measure a game without fooling yourself",{"id":896,"data":1387,"type":568},{"text":1388,"level":47},"The Frame-Time Stability Scorecard",{"id":900,"data":1390,"type":645},{"rows":1391,"title":1407,"layout":637,"columns":1408},[1392,1395,1398,1401,1404],{"id":904,"label":1393,"values":1394},"Average throughput",{"good":907,"warning":908},{"id":910,"label":1396,"values":1397},"Slow-frame tail",{"good":913,"warning":914},{"id":916,"label":1399,"values":1400},"Frame-time trace",{"good":919,"warning":920},{"id":922,"label":1402,"values":1403},"Repeatability",{"good":925,"warning":926},{"id":928,"label":1405,"values":1406},"Timing diagnosis",{"good":931,"warning":932},"What to look for before calling a game “smooth”",[1409,1411],{"id":936,"label":1410},"Healthy signal",{"id":671,"label":1412},"Warning signal",{"id":941,"data":1414,"type":568},{"text":1415,"level":47},"What would change this answer?",{"id":945,"data":1417,"type":544},{"text":1418},"The exact metrics available depend on the operating system, graphics API, hardware and measurement tool. Future presentation systems or frame-generation pipelines can also require additional distinctions between rendered, generated and displayed frames.",{"id":949,"data":1420,"type":544},{"text":1421},"The core principle is unlikely to change: a throughput average cannot fully describe timing consistency. As long as interactive graphics are delivered as a sequence of frames, the distribution and timing of those frames matter.",{"id":953,"data":1423,"type":568},{"text":1424,"level":47},"Limitations",{"id":957,"data":1426,"type":544},{"text":1427},"This article is a diagnostic framework, not a claim that every stutter has the same root cause. Game engines, APIs, operating systems, drivers and rendering pipelines differ.",{"id":961,"data":1429,"type":544},{"text":1430},"Low-FPS metrics should also be interpreted within the methodology of the tool that produced them. Cross-tool comparisons can be misleading when the statistical definitions or capture pipelines differ.",{"id":965,"data":1432,"type":568},{"text":1433,"level":47},"Conclusion",{"id":969,"data":1435,"type":544},{"text":1436},"If a game shows high FPS but still feels bad, stop staring at the average.",{"id":973,"data":1438,"type":544},{"text":1439},"Measure the frame times. Inspect the slow tail. Find out when the spikes happen. Compare CPU and GPU timing. Then change one variable and repeat the same workload. Smoothness is not just how many frames your system can produce. It is how consistently those frames reach you.",{"id":977,"data":1441,"type":568},{"text":1442,"level":47},"FAQ",{"id":981,"data":1444,"type":981},{"items":1445,"title":1464},[1446,1449,1452,1455,1458,1461],{"id":985,"answer":1447,"question":1448},"Because 120 FPS is an average. Repeated long frames can create visible hitches even while many fast frames keep the average high.","Why does 120 FPS still feel stuttery?",{"id":989,"answer":1450,"question":1451},"Frame time is the time required for an individual frame, usually measured in milliseconds. Lower and more consistent frame times generally indicate smoother delivery.","What is frame time?",{"id":993,"answer":1453,"question":1454},"It is a metric intended to describe performance among the slowest frames. Exact implementations can differ by tool, so compare results using the same benchmark methodology.","What does 1% low FPS mean?",{"id":997,"answer":1456,"question":1457},"Neither metric is sufficient by itself. Average FPS describes throughput, while low-FPS metrics and frame-time graphs expose consistency problems.","Is 1% low more important than average FPS?",{"id":1001,"answer":1459,"question":1460},"VRR can improve how variable frame delivery is presented, but it cannot eliminate a long frame caused by CPU, GPU, streaming or other workload stalls.","Can VRR fix micro-stutter?",{"id":1005,"answer":1462,"question":1463},"Sometimes a cap can improve consistency by leaving system headroom, but it should be tested with repeatable frame-time captures rather than assumed.","Should I cap FPS to reduce stutter?","FPS, frame time and stutter",{"id":1010,"data":1466,"type":568},{"text":1467,"level":47},"Glossary",{"id":1014,"data":1469,"type":1014},{"title":1470,"entries":1471},"Key performance terms",[1472,1475,1477,1480,1483,1485],{"term":1473,"anchor":1020,"definition":1474},"Frame time","The time associated with producing or presenting an individual frame, usually expressed in milliseconds.",{"term":1170,"anchor":1023,"definition":1476},"A throughput average describing the number of frames produced over a measured interval.",{"term":1478,"anchor":1027,"definition":1479},"1% Low","A slow-frame performance metric. Exact calculation can differ by tool; NVIDIA FrameView describes its 1% Low as the average of the slowest 1% of frames.",{"term":1481,"anchor":1031,"definition":1482},"Frame-time spike","A frame whose duration is substantially longer than surrounding frames, often perceived as a hitch or stutter.",{"term":1034,"anchor":1035,"definition":1484},"A PresentMon timing metric used to compare GPU execution time with the broader frame interval and help diagnose CPU\u002FGPU balance.",{"term":1486,"anchor":1038,"definition":1487},"Frame-Time Stability Test","A Figure Rocks workflow for evaluating average throughput, frame-time distribution, slow-frame metrics and CPU\u002FGPU timing under repeatable conditions.",{"id":1041,"data":1489,"type":568},{"text":1490,"level":47},"Primary sources",{"id":1045,"data":1492,"type":1052},{"link":1047,"meta":1493},{"image":1494,"title":1050,"description":1495},{"url":13},"Official Intel performance-monitoring tool with real-time graphs, percentiles, GPU telemetry, GPU Busy and support for major graphics APIs.",{"id":1054,"data":1497,"type":1052},{"link":1056,"meta":1498},{"image":1499,"title":1059,"description":1500},{"url":13},"Official NVIDIA tool for measuring frame rate, frame time, power and performance-per-watt, using PresentMon-based analytics.",{"id":1062,"data":1502,"type":1052},{"link":1064,"meta":1503},{"image":1504,"title":1505,"description":1506},{"url":13},"NVIDIA — FrameView User Guide","Official documentation defining average FPS, percentile metrics, 1% Low and 0.1% Low and explaining how consistency relates to stutter.",{"id":1070,"data":1508,"type":1052},{"link":1072,"meta":1509},{"image":1510,"title":1511,"description":1512},{"url":13},"Intel — Graphics API Developer and Optimization Guide","Official Intel guidance covering presentation modes, CPU scheduling considerations and the use of PresentMon for frame-presentation analysis.","2.31.0","A game can report 120, 144 or even 200 FPS and still feel rough. This guide explains why average FPS can hide bad frame delivery, how frame time and 1% lows expose stutter, and how to diagnose whether the CPU, GPU or another part of the pipeline is causing the problem.",{"lang":7,"title":534,"content":536,"contentJson":1516,"excerpt":1078},{"time":538,"blocks":1517,"version":1077},[1518,1520,1522,1524,1526,1528,1530,1532,1534,1536,1542,1544,1546,1560,1562,1564,1566,1568,1570,1572,1574,1576,1578,1580,1582,1592,1594,1596,1598,1610,1612,1614,1616,1618,1620,1622,1633,1635,1637,1639,1641,1643,1645,1647,1649,1651,1653,1655,1657,1666,1668,1684,1686,1688,1690,1692,1694,1696,1698,1700,1702,1704,1713,1715,1724,1726,1730,1734,1738],{"id":541,"data":1519,"type":544},{"text":543},{"id":546,"data":1521,"type":551},{"body":548,"title":549,"variant":550},{"id":553,"data":1523,"type":551},{"body":555,"title":556,"variant":557},{"id":559,"data":1525,"type":563},{"title":561,"maxLevel":562,"minLevel":47},{"id":565,"data":1527,"type":568},{"text":567,"level":47},{"id":570,"data":1529,"type":544},{"text":572},{"id":574,"data":1531,"type":544},{"text":576},{"id":578,"data":1533,"type":544},{"text":580},{"id":582,"data":1535,"type":568},{"text":584,"level":47},{"id":586,"data":1537,"type":600},{"steps":1538,"title":598,"orientation":599},[1539,1540,1541],{"label":590,"description":591},{"label":593,"description":594},{"label":596,"description":597},{"id":602,"data":1543,"type":544},{"text":604},{"id":606,"data":1545,"type":568},{"text":608,"level":47},{"id":610,"data":1547,"type":645},{"rows":1548,"title":636,"layout":637,"columns":1557},[1549,1551,1553,1555],{"id":614,"label":615,"values":1550},{"stable":617,"unstable":617},{"id":619,"label":620,"values":1552},{"stable":622,"unstable":623},{"id":625,"label":626,"values":1554},{"stable":628,"unstable":629},{"id":631,"label":632,"values":1556},{"stable":634,"unstable":635},[1558,1559],{"id":640,"label":641},{"id":643,"label":644},{"id":647,"data":1561,"type":544},{"text":649},{"id":651,"data":1563,"type":568},{"text":653,"level":47},{"id":655,"data":1565,"type":544},{"text":657},{"id":659,"data":1567,"type":544},{"text":661},{"id":663,"data":1569,"type":544},{"text":665},{"id":667,"data":1571,"type":551},{"body":669,"title":670,"variant":671},{"id":673,"data":1573,"type":568},{"text":675,"level":47},{"id":677,"data":1575,"type":544},{"text":679},{"id":681,"data":1577,"type":544},{"text":683},{"id":685,"data":1579,"type":544},{"text":687},{"id":689,"data":1581,"type":568},{"text":691,"level":47},{"id":693,"data":1583,"type":600},{"steps":1584,"title":717,"orientation":599},[1585,1586,1587,1588,1589,1590,1591],{"label":697,"description":698},{"label":700,"description":701},{"label":703,"description":704},{"label":706,"description":707},{"label":709,"description":710},{"label":712,"description":713},{"label":715,"description":716},{"id":719,"data":1593,"type":568},{"text":721,"level":47},{"id":723,"data":1595,"type":544},{"text":725},{"id":727,"data":1597,"type":544},{"text":729},{"id":731,"data":1599,"type":645},{"rows":1600,"title":752,"layout":637,"columns":1607},[1601,1603,1605],{"id":735,"label":736,"values":1602},{"meaning":738,"pattern":739},{"id":741,"label":742,"values":1604},{"meaning":744,"pattern":745},{"id":747,"label":748,"values":1606},{"meaning":750,"pattern":751},[1608,1609],{"id":755,"label":756},{"id":758,"label":759},{"id":761,"data":1611,"type":551},{"body":763,"title":764,"variant":557},{"id":766,"data":1613,"type":568},{"text":768,"level":47},{"id":770,"data":1615,"type":544},{"text":772},{"id":774,"data":1617,"type":544},{"text":776},{"id":778,"data":1619,"type":544},{"text":780},{"id":782,"data":1621,"type":568},{"text":784,"level":47},{"id":786,"data":1623,"type":637},{"content":1624,"stretched":821,"withHeadings":15},[1625,1626,1627,1628,1629,1630,1631,1632],[790,791,792],[794,795,796],[798,799,800],[802,803,804],[806,807,808],[810,811,812],[814,815,816],[818,819,820],{"id":823,"data":1634,"type":568},{"text":825,"level":47},{"id":827,"data":1636,"type":544},{"text":829},{"id":831,"data":1638,"type":544},{"text":833},{"id":835,"data":1640,"type":544},{"text":837},{"id":839,"data":1642,"type":568},{"text":841,"level":47},{"id":843,"data":1644,"type":544},{"text":845},{"id":847,"data":1646,"type":544},{"text":849},{"id":851,"data":1648,"type":568},{"text":853,"level":47},{"id":855,"data":1650,"type":544},{"text":857},{"id":859,"data":1652,"type":544},{"text":861},{"id":863,"data":1654,"type":551},{"body":865,"title":866,"variant":867},{"id":869,"data":1656,"type":568},{"text":871,"level":47},{"id":873,"data":1658,"type":600},{"steps":1659,"title":894,"orientation":599},[1660,1661,1662,1663,1664,1665],{"label":877,"description":878},{"label":880,"description":881},{"label":883,"description":884},{"label":886,"description":887},{"label":889,"description":890},{"label":892,"description":893},{"id":896,"data":1667,"type":568},{"text":898,"level":47},{"id":900,"data":1669,"type":645},{"rows":1670,"title":933,"layout":637,"columns":1681},[1671,1673,1675,1677,1679],{"id":904,"label":905,"values":1672},{"good":907,"warning":908},{"id":910,"label":911,"values":1674},{"good":913,"warning":914},{"id":916,"label":917,"values":1676},{"good":919,"warning":920},{"id":922,"label":923,"values":1678},{"good":925,"warning":926},{"id":928,"label":929,"values":1680},{"good":931,"warning":932},[1682,1683],{"id":936,"label":937},{"id":671,"label":939},{"id":941,"data":1685,"type":568},{"text":943,"level":47},{"id":945,"data":1687,"type":544},{"text":947},{"id":949,"data":1689,"type":544},{"text":951},{"id":953,"data":1691,"type":568},{"text":955,"level":47},{"id":957,"data":1693,"type":544},{"text":959},{"id":961,"data":1695,"type":544},{"text":963},{"id":965,"data":1697,"type":568},{"text":967,"level":47},{"id":969,"data":1699,"type":544},{"text":971},{"id":973,"data":1701,"type":544},{"text":975},{"id":977,"data":1703,"type":568},{"text":979,"level":47},{"id":981,"data":1705,"type":981},{"items":1706,"title":1008},[1707,1708,1709,1710,1711,1712],{"id":985,"answer":986,"question":987},{"id":989,"answer":990,"question":991},{"id":993,"answer":994,"question":995},{"id":997,"answer":998,"question":999},{"id":1001,"answer":1002,"question":1003},{"id":1005,"answer":1006,"question":1007},{"id":1010,"data":1714,"type":568},{"text":1012,"level":47},{"id":1014,"data":1716,"type":1014},{"title":1016,"entries":1717},[1718,1719,1720,1721,1722,1723],{"term":1019,"anchor":1020,"definition":1021},{"term":615,"anchor":1023,"definition":1024},{"term":1026,"anchor":1027,"definition":1028},{"term":1030,"anchor":1031,"definition":1032},{"term":1034,"anchor":1035,"definition":1036},{"term":691,"anchor":1038,"definition":1039},{"id":1041,"data":1725,"type":568},{"text":1043,"level":47},{"id":1045,"data":1727,"type":1052},{"link":1047,"meta":1728},{"image":1729,"title":1050,"description":1051},{"url":13},{"id":1054,"data":1731,"type":1052},{"link":1056,"meta":1732},{"image":1733,"title":1059,"description":1060},{"url":13},{"id":1062,"data":1735,"type":1052},{"link":1064,"meta":1736},{"image":1737,"title":1067,"description":1068},{"url":13},{"id":1070,"data":1739,"type":1052},{"link":1072,"meta":1740},{"image":1741,"title":1075,"description":1076},{"url":13},"Post erfolgreich abgerufen",{"items":1744,"source":1808,"manualIds":1809,"manualMatchedIds":1810},[1745,1751,1758,1762,1769,1774,1781,1786,1791,1796,1802],{"id":1746,"slug":1747,"title":1748,"excerpt":1749,"featuredImage":14,"publishedAt":1750},"120","frame-pacing-why-smoothness-is-about-frametime-not-fps","Фреймпейсинг: почему плавность зависит от времени кадра, а не от FPS","Высокий FPS всё равно может ощущаться плохо, если тайминг кадров неравномерен. Узнайте, что такое frame pacing, что его нарушает и в каком порядке вносить исправления, чтобы вернуть ощущение плавности.","2026-02-19T11:00:00.000Z",{"id":1752,"slug":1753,"title":1754,"excerpt":1755,"featuredImage":1756,"publishedAt":1757},"442","dlss-4-5-6x-why-300-fps-does-not-mean-the-game-is-rendering-300-frames","DLSS 4.5 6X: Почему 300 FPS не означает, что игра рендерит 300 кадров","DLSS 4.5 может генерировать до пяти дополнительных кадров для каждого традиционно отрендеренного кадра на поддерживаемых GPU серии RTX 50. В этом руководстве объясняется разница между отрендеренным FPS и отображаемым FPS, почему узкие места CPU можно обойти на уровне представления и почему задержку всё ещё нужно измерять отдельно.","\u002Fuploads\u002F2026\u002F09\u002Fdlss-4-5-6x-why-300-fps-does-not-mean-the-game-is-rendering-300-frames-1790376124236-e2j567.webp","2026-09-25T18:40:00.000Z",{"id":359,"slug":1759,"title":1760,"excerpt":1761,"featuredImage":14,"publishedAt":1750},"smoothness-frame-pacing-matters-more-than-fps","Плавность: фреймпейсинг важнее, чем FPS","Плавность — это стабильное время кадра, а не просто высокие цифры. Вот как мыслить категориями времени кадра и избавиться от ощущения «микростаттеров».",{"id":1763,"slug":1764,"title":1765,"excerpt":1766,"featuredImage":1767,"publishedAt":1768},"450","why-pc-games-stutter-when-compiling-shaders-and-how-advanced-shader-delivery-changes-it","Почему в ПК-играх возникают рывки при компиляции шейдеров — и как передовая доставка шейдеров меняет ситуацию","Заикание шейдеров возникает, когда компьютерной игре приходится компилировать программы для GPU в неподходящий момент. Microsoft Advanced Shader Delivery переносит большую часть этой работы с ПК игрока, подготавливая шейдеры для конкретного оборудования заранее и поставляя их вместе с игрой.","\u002Fuploads\u002F2026\u002F09\u002Fwhy-pc-games-stutter-when-compiling-shaders-and-how-advanced-shader-delivery-changes-it-1790406602956-ewtgf3.webp","2026-09-26T01:08:00.000Z",{"id":1770,"slug":1771,"title":1772,"excerpt":1773,"featuredImage":14,"publishedAt":1750},"85","frame-pacing-why-60-fps-can-feel-worse-than-50-consistency-wins","Фреймпейсинг: Почему 60 FPS могут ощущаться хуже, чем 50 (Стабильность решает)","Плавность — это не только FPS. Это фреймпейсинг. Узнайте, почему стабильное время кадра ощущается лучше, чем высокий, но нестабильный FPS, и как стабилизировать тайминг.",{"id":1775,"slug":1776,"title":1777,"excerpt":1778,"featuredImage":1779,"publishedAt":1780},"441","vram-usage-is-not-vram-requirement-why-a-full-memory-meter-does-not-tell-the-whole-story","Использование VRAM — это не требование к VRAM: почему заполненный индикатор памяти не рассказывает всей истории","Видя 7,8 ГБ использованной памяти на 8-гигабайтной видеокарте, можно подумать, что игра исчерпала видеопамять. Но всё не так просто. Это руководство объясняет объём видеопамяти, бюджеты резидентности, рабочие наборы, разделяемую память и то, как определить, действительно ли нехватка памяти вызывает подтормаживания.","\u002Fuploads\u002F2026\u002F09\u002Fvram-usage-is-not-vram-requirement-why-a-full-memory-meter-does-not-tell-the-whole-story-1790375650647-k854hg.webp","2026-09-25T18:33:00.000Z",{"id":1782,"slug":1783,"title":1784,"excerpt":1785,"featuredImage":14,"publishedAt":1750},"100","frame-pacing-why-120-fps-can-still-feel-bad","Фреймпейсинг: почему 120 FPS всё ещё могут ощущаться плохо","Плавность — это тайминг, а не число. Узнайте, что такое фреймпейсинг, почему плохое время кадра ощущается дерганым даже при высоком FPS, и практический порядок действий для исправления.",{"id":1787,"slug":1788,"title":1789,"excerpt":1790,"featuredImage":14,"publishedAt":1750},"80","cpu-stutter-vs-gpu-stutter-vs-shader-stutter-how-to-tell-what-you-have","Задержки CPU vs Задержки GPU vs Задержки шейдеров: Как определить, что у вас","Не все статтеры одинаковы. Узнайте о трех распространенных типах статтеров, о том, как они ощущаются, и о самом быстром способе диагностики перед тем, как менять настройки.",{"id":1792,"slug":1793,"title":1794,"excerpt":1795,"featuredImage":14,"publishedAt":1750},"69","frame-pacing-why-120-fps-can-feel-worse-than-60-smoothness-explained","Frame Pacing: Почему 120 FPS могут ощущаться хуже, чем 60 (Объяснение плавности)","Плавность — это стабильное время кадра, а не пиковый FPS. Узнайте, что такое frame pacing, как время кадра создает статтеры и какая практическая база исправляет ощущения.",{"id":1797,"slug":1798,"title":1799,"excerpt":1800,"featuredImage":14,"publishedAt":1801},"208","frame-cap-recipes-stable-targets-for-vrr-and-non-vrr-setups","Рецепты ограничения частоты кадров: стабильные цели для систем с VRR и без VRR","Хорошее ограничение ощущается лучше, чем нестабильные пики. Используйте эти простые рецепты ограничений, чтобы стабилизировать время кадра для VRR и не-VRR дисплеев.","2026-02-21T05:20:00.000Z",{"id":1803,"slug":1804,"title":1805,"excerpt":1806,"featuredImage":14,"publishedAt":1807},"237","shader-stutter-why-first-runs-hitch-and-how-to-reduce-it","Статтеры шейдеров: почему возникают заминки при первом запуске и как их уменьшить","Статтеры шейдеров возникают, когда новые эффекты компилируются в реальном времени. Узнайте, как быстро их распознать, и практические способы уменьшить задержки без «плацебо-твиков».","2026-02-20T23:40:00.000Z","fallback",[],[]]