[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:figure:zh":3,"public-menus:all":45,"post:why-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained:zh":531,"related:post:why-120-fps-can-still-feel-bad-frame-time-1-lows-and-stutter-explained:zh:1":1744},{"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","zh","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":1743},{"id":533,"title":534,"slug":535,"content":536,"contentJson":537,"excerpt":1079,"featuredImage":1080,"featuredImageAlt":1081,"featuredImageCaption":14,"featuredImageTitle":14,"featuredImageCopyright":14,"featuredImageAuthor":14,"featuredImageSourceUrl":14,"featuredImageLicense":14,"featuredImageIsAiGenerated":821,"status":1082,"publishedAt":1083,"createdAt":1084,"updatedAt":1085,"seoLocalePaths":1086,"categories":1095,"author":1108,"translations":1112},"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%低帧”数值都当作通用公式来比较\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">不同工具对低帧率和百分位统计的计算、汇总或标记方式可能不同。请尽可能比较来自\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. 检查低帧率或百分位指标\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>Intel PresentMon 的 GPU Busy 指标专门用于帮助评估 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>有些卡顿并不是简单的稳态性能问题。一个工作负载可以以高帧率流畅运行，直到游戏执行只在特定时刻发生的昂贵工作。\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>包含一次加载过渡的短捕获可能产生与更长、可重复的游戏运行截然不同的极低帧结果。这并不意味着该指标无用；而是意味着测试方法很重要。\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>低帧率指标也应在生成它们的工具的方法论范围内进行解读。当统计定义或采集管线不同时，跨工具比较可能会产生误导。\u003C\u002Fp>\n\u003Ch2 id=\"section-58\">结论\u003C\u002Fh2>\n\u003Cp>如果一款游戏显示高帧率但仍然感觉不佳，不要再盯着平均值看了。\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\">帧率、帧时间与卡顿\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 帧仍然感觉卡顿？\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">因为 120 帧是平均值。反复出现的长帧会造成可见的顿挫，即使许多快速帧使平均值保持在高位。\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% 低帧率是什么意思？\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% 低帧率比平均帧率更重要吗？\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">这两个指标本身都不充分。平均帧率描述吞吐量，而低帧率指标和帧时间图表则揭示一致性问题。\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\">我应该限制帧率以减少卡顿吗？\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\">平均帧率\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\">英特尔官方性能监控工具，具有实时图表、百分位数、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\">官方文档，定义了平均帧率、百分位数指标、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\">英特尔官方指南，涵盖呈现模式、CPU 调度注意事项以及使用 PresentMon 进行帧呈现分析。\u003C\u002Fp>\u003C\u002Fa>",{"time":538,"blocks":539,"version":1078},1790374917491,[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,1041,1045,1054,1062,1070],{"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},"不同工具对低帧率和百分位统计的计算、汇总或标记方式可能不同。请尽可能比较来自\u003Cstrong>同一工具和方法\u003C\u002Fstrong>的结果。","不要将每个“1%低帧”数值都当作通用公式来比较","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. 检查低帧率或百分位指标","平均值与慢帧指标之间的巨大差距是帧交付不稳定的警告信号。",{"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},"Intel PresentMon 的 GPU Busy 指标专门用于帮助评估 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},"有些卡顿并不是简单的稳态性能问题。一个工作负载可以以高帧率流畅运行，直到游戏执行只在特定时刻发生的昂贵工作。",{"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},"包含一次加载过渡的短捕获可能产生与更长、可重复的游戏运行截然不同的极低帧结果。这并不意味着该指标无用；而是意味着测试方法很重要。",{"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},"低帧率指标也应在生成它们的工具的方法论范围内进行解读。当统计定义或采集管线不同时，跨工具比较可能会产生误导。",{"id":965,"data":966,"type":568},"h-conclusion",{"text":967,"level":47},"结论",{"id":969,"data":970,"type":544},"p-conclusion-1",{"text":971},"如果一款游戏显示高帧率但仍然感觉不佳，不要再盯着平均值看了。",{"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 帧是平均值。反复出现的长帧会造成可见的顿挫，即使许多快速帧使平均值保持在高位。","为什么 120 帧仍然感觉卡顿？",{"id":989,"answer":990,"question":991},"faq2","帧时间是单个帧所需的时间，通常以毫秒为单位。帧时间越低且越一致，通常表明帧的交付越流畅。","什么是帧时间？",{"id":993,"answer":994,"question":995},"faq3","这是一个旨在描述最慢帧中性能表现的指标。不同工具的具体实现可能不同，因此请使用相同的基准测试方法进行比较。","1% 低帧率是什么意思？",{"id":997,"answer":998,"question":999},"faq4","这两个指标本身都不充分。平均帧率描述吞吐量，而低帧率指标和帧时间图表则揭示一致性问题。","1% 低帧率比平均帧率更重要吗？",{"id":1001,"answer":1002,"question":1003},"faq5","VRR 可以改善可变帧交付的呈现方式，但无法消除由 CPU、GPU、流式加载或其他工作负载停顿导致的长帧。","VRR 能修复微卡顿吗？",{"id":1005,"answer":1006,"question":1007},"faq6","有时限制帧率可以通过留出系统余量来提高一致性，但应通过可重复的帧时间采集来测试，而不是想当然。","我应该限制帧率以减少卡顿吗？","帧率、帧时间与卡顿",{"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,1026,1030,1034,1038],{"term":1019,"anchor":1020,"definition":1021},"帧时间","frame-time","与生成或呈现单个帧相关的时间，通常以毫秒表示。",{"term":1023,"anchor":1024,"definition":1025},"平均帧率","average-fps","描述在测量间隔内产生的帧数的吞吐量平均值。",{"term":1027,"anchor":1028,"definition":1029},"1% 低帧率","one-percent-low","一种慢帧性能指标。具体计算方式可能因工具而异；NVIDIA FrameView 将其 1% 低帧率描述为最慢 1% 帧的平均值。",{"term":1031,"anchor":1032,"definition":1033},"帧时间尖峰","frame-time-spike","持续时间明显长于周围帧的帧，通常被感知为顿挫或卡顿。",{"term":1035,"anchor":1036,"definition":1037},"GPU Busy","gpu-busy","一种 PresentMon 时序指标，用于将 GPU 执行时间与更广泛的帧间隔进行比较，并帮助诊断 CPU\u002FGPU 平衡。",{"term":691,"anchor":1039,"definition":1040},"frame-time-stability-test","一种 Figure Rocks 工作流程，用于在可重复条件下评估平均吞吐量、帧时间分布、慢帧指标以及 CPU\u002FGPU 时序。",{"id":1042,"data":1043,"type":568},"h-sources",{"text":1044,"level":47},"主要来源",{"id":1046,"data":1047,"type":1053},"src-intel-presentmon",{"link":1048,"meta":1049},"https:\u002F\u002Fgame.intel.com\u002Fus\u002Fintel-presentmon\u002F",{"image":1050,"title":1051,"description":1052},{"url":13},"Intel — PresentMon","英特尔官方性能监控工具，具有实时图表、百分位数、GPU 遥测、GPU Busy 以及对主要图形 API 的支持。","linkTool",{"id":1055,"data":1056,"type":1053},"src-nvidia-frameview",{"link":1057,"meta":1058},"https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fgeforce\u002Ftechnologies\u002Fframeview\u002F",{"image":1059,"title":1060,"description":1061},{"url":13},"NVIDIA — FrameView","NVIDIA 官方工具，用于测量帧率、帧时间、功耗和每瓦性能，使用基于 PresentMon 的分析。",{"id":1063,"data":1064,"type":1053},"src-nvidia-frameview-guide",{"link":1065,"meta":1066},"https:\u002F\u002Fimages.nvidia.com\u002Fcontent\u002Fgeforce\u002Ftechnologies\u002Fframeview\u002Fframeview-1-4-user-guide-web-version.pdf",{"image":1067,"title":1068,"description":1069},{"url":13},"NVIDIA — FrameView 用户指南","官方文档，定义了平均帧率、百分位数指标、1% 低帧率和 0.1% 低帧率，并解释了稳定性与卡顿的关系。",{"id":1071,"data":1072,"type":1053},"src-intel-optimization",{"link":1073,"meta":1074},"https:\u002F\u002Fwww.intel.com\u002Fcontent\u002Fwww\u002Fus\u002Fen\u002Fdeveloper\u002Farticles\u002Fguide\u002Flp-api-developer-optimization-guide.html",{"image":1075,"title":1076,"description":1077},{"url":13},"Intel — 图形 API 开发者与优化指南","英特尔官方指南，涵盖呈现模式、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":1087,"de":1088,"sr":1089,"es":1090,"fr":1091,"it":1092,"ru":1093,"zh":1094},"\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",[1096,1100,1104],{"id":1097,"name":1098,"slug":1099},224,"帧时间分析","frametime-analysis",{"id":1101,"name":1102,"slug":1103},49,"帧生成时间","frame-pacing",{"id":1105,"name":1106,"slug":1107},328,"识别卡顿类型","identify-stutter-type",{"id":283,"login":1109,"email":1110,"displayName":1111},"aleksandar","aleksandar@stajic.de","Aleksandar Stajic",[1113,1516],{"lang":8,"title":1114,"content":1115,"contentJson":1116,"excerpt":1515},"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":1117,"blocks":1118,"version":1514},1790374470296,[1119,1122,1126,1130,1133,1136,1139,1142,1145,1148,1161,1164,1167,1188,1191,1194,1197,1200,1203,1207,1210,1213,1216,1219,1222,1247,1250,1253,1256,1274,1278,1281,1284,1287,1290,1293,1328,1331,1334,1337,1340,1343,1346,1349,1352,1355,1358,1362,1365,1387,1390,1414,1417,1420,1423,1426,1429,1432,1435,1438,1441,1444,1466,1469,1489,1492,1497,1502,1508],{"id":541,"data":1120,"type":544},{"text":1121},"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":1123,"type":551},{"body":1124,"title":1125,"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":1127,"type":551},{"body":1128,"title":1129,"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":1131,"type":563},{"title":1132,"maxLevel":562,"minLevel":47},"Contents",{"id":565,"data":1134,"type":568},{"text":1135,"level":47},"FPS is an average; frame time is the rhythm",{"id":570,"data":1137,"type":544},{"text":1138},"FPS tells you how many frames are completed per second. Frame time tells you how long an individual frame takes.",{"id":574,"data":1140,"type":544},{"text":1141},"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":1143,"type":544},{"text":1144},"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":1146,"type":568},{"text":1147,"level":47},"The Smoothness Triangle",{"id":586,"data":1149,"type":600},{"steps":1150,"title":1160,"orientation":599},[1151,1154,1157],{"label":1152,"description":1153},"1. Throughput","Average FPS: how many frames the system produces over time.",{"label":1155,"description":1156},"2. Consistency","Frame-time distribution: whether frames arrive with a stable cadence or contain long outliers.",{"label":1158,"description":1159},"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":1162,"type":544},{"text":1163},"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":1165,"type":568},{"text":1166,"level":47},"Why average FPS hides stutter",{"id":610,"data":1168,"type":645},{"rows":1169,"title":1182,"layout":637,"columns":1183},[1170,1173,1176,1179],{"id":614,"label":1171,"values":1172},"Average FPS",{"stable":617,"unstable":617},{"id":619,"label":1174,"values":1175},"Most frame times",{"stable":622,"unstable":623},{"id":625,"label":1177,"values":1178},"Slow frames",{"stable":628,"unstable":629},{"id":631,"label":1180,"values":1181},"Player experience",{"stable":634,"unstable":635},"Two sessions can have the same average FPS and feel different",[1184,1186],{"id":640,"label":1185},"Stable session",{"id":643,"label":1187},"Unstable session",{"id":647,"data":1189,"type":544},{"text":1190},"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":1192,"type":568},{"text":1193,"level":47},"What 1% lows are trying to show",{"id":655,"data":1195,"type":544},{"text":1196},"Low-FPS and percentile metrics exist because average FPS alone cannot describe the slow end of the frame distribution.",{"id":659,"data":1198,"type":544},{"text":1199},"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":1201,"type":544},{"text":1202},"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":1204,"type":551},{"body":1205,"title":1206,"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":1208,"type":568},{"text":1209,"level":47},"Frame-time graphs are often more useful than one summary number",{"id":677,"data":1211,"type":544},{"text":1212},"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":1214,"type":544},{"text":1215},"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":1217,"type":544},{"text":1218},"NVIDIA FrameView likewise measures frame rate and frame time and can write detailed capture data to logs for later analysis.",{"id":689,"data":1220,"type":568},{"text":1221,"level":47},"The Frame-Time Stability Test",{"id":693,"data":1223,"type":600},{"steps":1224,"title":1246,"orientation":599},[1225,1228,1231,1234,1237,1240,1243],{"label":1226,"description":1227},"1. Capture a repeatable scene","Use the same route, benchmark, save point or gameplay sequence so different runs are comparable.",{"label":1229,"description":1230},"2. Record average FPS","Treat it as throughput, not as the final smoothness verdict.",{"label":1232,"description":1233},"3. Inspect frame-time consistency","Look for isolated spikes, repeating spikes, wide variance or long slow-frame clusters.",{"label":1235,"description":1236},"4. Check low-FPS or percentile metrics","Large gaps between average and slow-frame metrics are a warning that delivery is inconsistent.",{"label":1238,"description":1239},"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":1241,"description":1242},"6. Change one variable at a time","Test frame cap, graphics setting, background process, shader state, storage path or driver\u002Fgame setting independently.",{"label":1244,"description":1245},"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":1248,"type":568},{"text":1249,"level":47},"CPU bottleneck and GPU bottleneck do not look identical",{"id":723,"data":1251,"type":544},{"text":1252},"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":1254,"type":544},{"text":1255},"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":1257,"type":645},{"rows":1258,"title":1268,"layout":637,"columns":1269},[1259,1262,1265],{"id":735,"label":1260,"values":1261},"GPU-bound",{"meaning":738,"pattern":739},{"id":741,"label":1263,"values":1264},"CPU \u002F pipeline constrained",{"meaning":744,"pattern":745},{"id":747,"label":1266,"values":1267},"Intermittent event",{"meaning":750,"pattern":751},"Simplified timing patterns",[1270,1272],{"id":755,"label":1271},"Typical timing pattern",{"id":758,"label":1273},"What it can suggest",{"id":761,"data":1275,"type":551},{"body":1276,"title":1277,"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":1279,"type":568},{"text":1280,"level":47},"Why a frame cap can sometimes feel smoother than maximum FPS",{"id":770,"data":1282,"type":544},{"text":1283},"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":1285,"type":544},{"text":1286},"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":1288,"type":544},{"text":1289},"A lower average with substantially tighter frame delivery can feel better than a higher average punctuated by frequent spikes.",{"id":782,"data":1291,"type":568},{"text":1292,"level":47},"Common causes of high-FPS stutter",{"id":786,"data":1294,"type":637},{"content":1295,"stretched":821,"withHeadings":15},[1296,1300,1304,1308,1312,1316,1320,1324],[1297,1298,1299],"Cause class","What you may see","What to test",[1301,1302,1303],"Shader or pipeline compilation","Spikes tied to first-time effects, locations or actions","Repeat the same sequence and compare later passes",[1305,1306,1307],"Asset \u002F world streaming","Spikes when entering areas or loading new content","Storage, texture settings, world-streaming behavior",[1309,1310,1311],"CPU scheduling \u002F background work","Irregular spikes unrelated to GPU load","Background processes, overlays, recording, CPU saturation",[1313,1314,1315],"GPU saturation","Consistently high GPU execution time","Lower expensive graphics settings or test a frame cap",[1317,1318,1319],"Memory pressure","Increasing hitching under heavy VRAM\u002FRAM use","Texture level, resolution, background applications, working-set behavior",[1321,1322,1323],"Presentation \u002F synchronization","Cadence problems around refresh or presentation modes","V-Sync, VRR, frame cap and display-mode combinations",[1325,1326,1327],"Driver or game regression","Problem appears after a specific update","Compare versions or official known-issue notes where practical",{"id":823,"data":1329,"type":568},{"text":1330,"level":47},"Shader compilation is a special case",{"id":827,"data":1332,"type":544},{"text":1333},"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":1335,"type":544},{"text":1336},"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":1338,"type":544},{"text":1339},"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":1341,"type":568},{"text":1342,"level":47},"VRR does not repair bad frame times",{"id":843,"data":1344,"type":544},{"text":1345},"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":1347,"type":544},{"text":1348},"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":1350,"type":568},{"text":1351,"level":47},"Why 0.1% lows can become noisy",{"id":855,"data":1353,"type":544},{"text":1354},"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":1356,"type":544},{"text":1357},"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":1359,"type":551},{"body":1360,"title":1361,"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":1363,"type":568},{"text":1364,"level":47},"A practical benchmark protocol",{"id":873,"data":1366,"type":600},{"steps":1367,"title":1386,"orientation":599},[1368,1371,1374,1377,1380,1383],{"label":1369,"description":1370},"Warm up","Let the game, shaders and assets reach a reasonably repeatable state when that matches the question you are testing.",{"label":1372,"description":1373},"Fix the conditions","Use the same resolution, settings, frame cap, location and workload.",{"label":1375,"description":1376},"Capture long enough","Avoid judging the slow tail from a tiny sample unless the event itself is what you want to measure.",{"label":1378,"description":1379},"Repeat","Run the same test multiple times to separate repeatable behavior from random background events.",{"label":1381,"description":1382},"Compare distributions","Look at average FPS, slow-frame metrics and the frame-time trace.",{"label":1384,"description":1385},"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":1388,"type":568},{"text":1389,"level":47},"The Frame-Time Stability Scorecard",{"id":900,"data":1391,"type":645},{"rows":1392,"title":1408,"layout":637,"columns":1409},[1393,1396,1399,1402,1405],{"id":904,"label":1394,"values":1395},"Average throughput",{"good":907,"warning":908},{"id":910,"label":1397,"values":1398},"Slow-frame tail",{"good":913,"warning":914},{"id":916,"label":1400,"values":1401},"Frame-time trace",{"good":919,"warning":920},{"id":922,"label":1403,"values":1404},"Repeatability",{"good":925,"warning":926},{"id":928,"label":1406,"values":1407},"Timing diagnosis",{"good":931,"warning":932},"What to look for before calling a game “smooth”",[1410,1412],{"id":936,"label":1411},"Healthy signal",{"id":671,"label":1413},"Warning signal",{"id":941,"data":1415,"type":568},{"text":1416,"level":47},"What would change this answer?",{"id":945,"data":1418,"type":544},{"text":1419},"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":1421,"type":544},{"text":1422},"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":1424,"type":568},{"text":1425,"level":47},"Limitations",{"id":957,"data":1427,"type":544},{"text":1428},"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":1430,"type":544},{"text":1431},"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":1433,"type":568},{"text":1434,"level":47},"Conclusion",{"id":969,"data":1436,"type":544},{"text":1437},"If a game shows high FPS but still feels bad, stop staring at the average.",{"id":973,"data":1439,"type":544},{"text":1440},"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":1442,"type":568},{"text":1443,"level":47},"FAQ",{"id":981,"data":1445,"type":981},{"items":1446,"title":1465},[1447,1450,1453,1456,1459,1462],{"id":985,"answer":1448,"question":1449},"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":1451,"question":1452},"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":1454,"question":1455},"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":1457,"question":1458},"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":1460,"question":1461},"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":1463,"question":1464},"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":1467,"type":568},{"text":1468,"level":47},"Glossary",{"id":1014,"data":1470,"type":1014},{"title":1471,"entries":1472},"Key performance terms",[1473,1476,1478,1481,1484,1486],{"term":1474,"anchor":1020,"definition":1475},"Frame time","The time associated with producing or presenting an individual frame, usually expressed in milliseconds.",{"term":1171,"anchor":1024,"definition":1477},"A throughput average describing the number of frames produced over a measured interval.",{"term":1479,"anchor":1028,"definition":1480},"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":1482,"anchor":1032,"definition":1483},"Frame-time spike","A frame whose duration is substantially longer than surrounding frames, often perceived as a hitch or stutter.",{"term":1035,"anchor":1036,"definition":1485},"A PresentMon timing metric used to compare GPU execution time with the broader frame interval and help diagnose CPU\u002FGPU balance.",{"term":1487,"anchor":1039,"definition":1488},"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":1042,"data":1490,"type":568},{"text":1491,"level":47},"Primary sources",{"id":1046,"data":1493,"type":1053},{"link":1048,"meta":1494},{"image":1495,"title":1051,"description":1496},{"url":13},"Official Intel performance-monitoring tool with real-time graphs, percentiles, GPU telemetry, GPU Busy and support for major graphics APIs.",{"id":1055,"data":1498,"type":1053},{"link":1057,"meta":1499},{"image":1500,"title":1060,"description":1501},{"url":13},"Official NVIDIA tool for measuring frame rate, frame time, power and performance-per-watt, using PresentMon-based analytics.",{"id":1063,"data":1503,"type":1053},{"link":1065,"meta":1504},{"image":1505,"title":1506,"description":1507},{"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":1071,"data":1509,"type":1053},{"link":1073,"meta":1510},{"image":1511,"title":1512,"description":1513},{"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":1517,"excerpt":1079},{"time":538,"blocks":1518,"version":1078},[1519,1521,1523,1525,1527,1529,1531,1533,1535,1537,1543,1545,1547,1561,1563,1565,1567,1569,1571,1573,1575,1577,1579,1581,1583,1593,1595,1597,1599,1611,1613,1615,1617,1619,1621,1623,1634,1636,1638,1640,1642,1644,1646,1648,1650,1652,1654,1656,1658,1667,1669,1685,1687,1689,1691,1693,1695,1697,1699,1701,1703,1705,1714,1716,1725,1727,1731,1735,1739],{"id":541,"data":1520,"type":544},{"text":543},{"id":546,"data":1522,"type":551},{"body":548,"title":549,"variant":550},{"id":553,"data":1524,"type":551},{"body":555,"title":556,"variant":557},{"id":559,"data":1526,"type":563},{"title":561,"maxLevel":562,"minLevel":47},{"id":565,"data":1528,"type":568},{"text":567,"level":47},{"id":570,"data":1530,"type":544},{"text":572},{"id":574,"data":1532,"type":544},{"text":576},{"id":578,"data":1534,"type":544},{"text":580},{"id":582,"data":1536,"type":568},{"text":584,"level":47},{"id":586,"data":1538,"type":600},{"steps":1539,"title":598,"orientation":599},[1540,1541,1542],{"label":590,"description":591},{"label":593,"description":594},{"label":596,"description":597},{"id":602,"data":1544,"type":544},{"text":604},{"id":606,"data":1546,"type":568},{"text":608,"level":47},{"id":610,"data":1548,"type":645},{"rows":1549,"title":636,"layout":637,"columns":1558},[1550,1552,1554,1556],{"id":614,"label":615,"values":1551},{"stable":617,"unstable":617},{"id":619,"label":620,"values":1553},{"stable":622,"unstable":623},{"id":625,"label":626,"values":1555},{"stable":628,"unstable":629},{"id":631,"label":632,"values":1557},{"stable":634,"unstable":635},[1559,1560],{"id":640,"label":641},{"id":643,"label":644},{"id":647,"data":1562,"type":544},{"text":649},{"id":651,"data":1564,"type":568},{"text":653,"level":47},{"id":655,"data":1566,"type":544},{"text":657},{"id":659,"data":1568,"type":544},{"text":661},{"id":663,"data":1570,"type":544},{"text":665},{"id":667,"data":1572,"type":551},{"body":669,"title":670,"variant":671},{"id":673,"data":1574,"type":568},{"text":675,"level":47},{"id":677,"data":1576,"type":544},{"text":679},{"id":681,"data":1578,"type":544},{"text":683},{"id":685,"data":1580,"type":544},{"text":687},{"id":689,"data":1582,"type":568},{"text":691,"level":47},{"id":693,"data":1584,"type":600},{"steps":1585,"title":717,"orientation":599},[1586,1587,1588,1589,1590,1591,1592],{"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":1594,"type":568},{"text":721,"level":47},{"id":723,"data":1596,"type":544},{"text":725},{"id":727,"data":1598,"type":544},{"text":729},{"id":731,"data":1600,"type":645},{"rows":1601,"title":752,"layout":637,"columns":1608},[1602,1604,1606],{"id":735,"label":736,"values":1603},{"meaning":738,"pattern":739},{"id":741,"label":742,"values":1605},{"meaning":744,"pattern":745},{"id":747,"label":748,"values":1607},{"meaning":750,"pattern":751},[1609,1610],{"id":755,"label":756},{"id":758,"label":759},{"id":761,"data":1612,"type":551},{"body":763,"title":764,"variant":557},{"id":766,"data":1614,"type":568},{"text":768,"level":47},{"id":770,"data":1616,"type":544},{"text":772},{"id":774,"data":1618,"type":544},{"text":776},{"id":778,"data":1620,"type":544},{"text":780},{"id":782,"data":1622,"type":568},{"text":784,"level":47},{"id":786,"data":1624,"type":637},{"content":1625,"stretched":821,"withHeadings":15},[1626,1627,1628,1629,1630,1631,1632,1633],[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":1635,"type":568},{"text":825,"level":47},{"id":827,"data":1637,"type":544},{"text":829},{"id":831,"data":1639,"type":544},{"text":833},{"id":835,"data":1641,"type":544},{"text":837},{"id":839,"data":1643,"type":568},{"text":841,"level":47},{"id":843,"data":1645,"type":544},{"text":845},{"id":847,"data":1647,"type":544},{"text":849},{"id":851,"data":1649,"type":568},{"text":853,"level":47},{"id":855,"data":1651,"type":544},{"text":857},{"id":859,"data":1653,"type":544},{"text":861},{"id":863,"data":1655,"type":551},{"body":865,"title":866,"variant":867},{"id":869,"data":1657,"type":568},{"text":871,"level":47},{"id":873,"data":1659,"type":600},{"steps":1660,"title":894,"orientation":599},[1661,1662,1663,1664,1665,1666],{"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":1668,"type":568},{"text":898,"level":47},{"id":900,"data":1670,"type":645},{"rows":1671,"title":933,"layout":637,"columns":1682},[1672,1674,1676,1678,1680],{"id":904,"label":905,"values":1673},{"good":907,"warning":908},{"id":910,"label":911,"values":1675},{"good":913,"warning":914},{"id":916,"label":917,"values":1677},{"good":919,"warning":920},{"id":922,"label":923,"values":1679},{"good":925,"warning":926},{"id":928,"label":929,"values":1681},{"good":931,"warning":932},[1683,1684],{"id":936,"label":937},{"id":671,"label":939},{"id":941,"data":1686,"type":568},{"text":943,"level":47},{"id":945,"data":1688,"type":544},{"text":947},{"id":949,"data":1690,"type":544},{"text":951},{"id":953,"data":1692,"type":568},{"text":955,"level":47},{"id":957,"data":1694,"type":544},{"text":959},{"id":961,"data":1696,"type":544},{"text":963},{"id":965,"data":1698,"type":568},{"text":967,"level":47},{"id":969,"data":1700,"type":544},{"text":971},{"id":973,"data":1702,"type":544},{"text":975},{"id":977,"data":1704,"type":568},{"text":979,"level":47},{"id":981,"data":1706,"type":981},{"items":1707,"title":1008},[1708,1709,1710,1711,1712,1713],{"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":1715,"type":568},{"text":1012,"level":47},{"id":1014,"data":1717,"type":1014},{"title":1016,"entries":1718},[1719,1720,1721,1722,1723,1724],{"term":1019,"anchor":1020,"definition":1021},{"term":1023,"anchor":1024,"definition":1025},{"term":1027,"anchor":1028,"definition":1029},{"term":1031,"anchor":1032,"definition":1033},{"term":1035,"anchor":1036,"definition":1037},{"term":691,"anchor":1039,"definition":1040},{"id":1042,"data":1726,"type":568},{"text":1044,"level":47},{"id":1046,"data":1728,"type":1053},{"link":1048,"meta":1729},{"image":1730,"title":1051,"description":1052},{"url":13},{"id":1055,"data":1732,"type":1053},{"link":1057,"meta":1733},{"image":1734,"title":1060,"description":1061},{"url":13},{"id":1063,"data":1736,"type":1053},{"link":1065,"meta":1737},{"image":1738,"title":1068,"description":1069},{"url":13},{"id":1071,"data":1740,"type":1053},{"link":1073,"meta":1741},{"image":1742,"title":1076,"description":1077},{"url":13},"Post erfolgreich abgerufen",{"items":1745,"source":1809,"manualIds":1810,"manualMatchedIds":1811},[1746,1752,1758,1765,1772,1777,1783,1788,1793,1797,1802],{"id":1747,"slug":1748,"title":1749,"excerpt":1750,"featuredImage":14,"publishedAt":1751},"80","cpu-stutter-vs-gpu-stutter-vs-shader-stutter-how-to-tell-what-you-have","CPU卡顿 vs GPU卡顿 vs 着色器卡顿：如何辨别您遇到的是哪一种","并非所有口吃都相同。在调整设置前，先了解三种常见的口吃类型、它们的感受特征，以及最快速的诊断方法。","2026-02-19T11:00:00.000Z",{"id":1753,"slug":1754,"title":1755,"excerpt":1756,"featuredImage":14,"publishedAt":1757},"237","shader-stutter-why-first-runs-hitch-and-how-to-reduce-it","着色器卡顿：首次运行为何卡顿及如何减少","着色器卡顿发生在实时编译新特效时。了解如何快速识别它，以及无需安慰剂调整即可减少卡顿的实用方法。","2026-02-20T23:40:00.000Z",{"id":1759,"slug":1760,"title":1761,"excerpt":1762,"featuredImage":1763,"publishedAt":1764},"441","vram-usage-is-not-vram-requirement-why-a-full-memory-meter-does-not-tell-the-whole-story","显存使用量不等于显存需求量：为什么显存占用满并不代表全部真相","在8 GB显卡上看到7.8 GB已使用，可能看起来像是游戏显存耗尽的证据。事情并没有那么简单。本指南将解释VRAM容量、驻留预算、工作集、共享内存，以及如何判断内存压力是否真的导致了卡顿。","\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":1766,"slug":1767,"title":1768,"excerpt":1769,"featuredImage":1770,"publishedAt":1771},"450","why-pc-games-stutter-when-compiling-shaders-and-how-advanced-shader-delivery-changes-it","为什么PC游戏在编译着色器时会卡顿——以及高级着色器分发如何改变这一现状","着色器卡顿发生在 PC 游戏不得不在错误时机编译 GPU 程序的时候。Microsoft 高级着色器交付通过提前准备硬件专用着色器并随游戏一起交付，将大部分工作从玩家 PC 上移走。","\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":1773,"slug":1774,"title":1775,"excerpt":1776,"featuredImage":14,"publishedAt":1751},"85","frame-pacing-why-60-fps-can-feel-worse-than-50-consistency-wins","帧率稳定性：为何60帧的体验可能不如50帧（一致性胜出）","流畅度不仅仅是帧率。它关乎帧间隔的稳定性。了解为何稳定的帧时间比高但不稳定的帧率体验更佳，以及如何稳定帧时序。",{"id":1778,"slug":1779,"title":1780,"excerpt":1781,"featuredImage":14,"publishedAt":1782},"208","frame-cap-recipes-stable-targets-for-vrr-and-non-vrr-setups","帧率上限设置方案：适用于VRR与非VRR显示器的稳定目标帧率","稳定的帧率胜过不稳定的峰值。使用这些简单的帧率上限设置方案，为VRR和非VRR显示器稳定帧生成节奏。","2026-02-21T05:20:00.000Z",{"id":1784,"slug":1785,"title":1786,"excerpt":1787,"featuredImage":14,"publishedAt":1751},"100","frame-pacing-why-120-fps-can-still-feel-bad","帧生成稳定性：为何120帧率仍可能感觉不佳","流畅度关乎时机，而非数字。了解什么是帧时间分布，为何高帧率下糟糕的帧间隔仍会带来卡顿感，以及实际优化的解决步骤。",{"id":1789,"slug":1790,"title":1791,"excerpt":1792,"featuredImage":14,"publishedAt":1751},"120","frame-pacing-why-smoothness-is-about-frametime-not-fps","帧生成节奏：为何流畅度关乎帧时间，而非帧率","高帧率若时序不均，仍会带来糟糕体验。了解何为帧同步，何物会破坏它，以及恢复流畅感的修复步骤。",{"id":359,"slug":1794,"title":1795,"excerpt":1796,"featuredImage":14,"publishedAt":1751},"smoothness-frame-pacing-matters-more-than-fps","流畅度：帧生成间隔比帧率更重要","流畅性在于时序的一致性，而非单纯追求更高的帧数。以下是如何从帧时间角度思考，消除“微卡顿”感的方法。",{"id":1798,"slug":1799,"title":1800,"excerpt":1801,"featuredImage":14,"publishedAt":1751},"69","frame-pacing-why-120-fps-can-feel-worse-than-60-smoothness-explained","帧生成时间：为何120帧率可能感觉不如60帧流畅（平滑度解析）","流畅度在于帧时间的一致性，而非峰值帧率。了解何为帧生成间隔，帧时间如何导致卡顿，以及实现顺滑体验的实际基准线。",{"id":1803,"slug":1804,"title":1805,"excerpt":1806,"featuredImage":1807,"publishedAt":1808},"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 可在支持的 RTX 50 系列 GPU 上为每个传统渲染帧生成最多五个额外帧。本指南解释了渲染 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","fallback",[],[]]