当前位置: 首页 > news >正文

The Managed DirectX Render Loop

Tom has the final(?) say on the matter.... Or is it? Of course its not :-) Rick has added a response including some perf and memory numbers.

I figured I should put a quick summary list together that explains some of the history behind this.

  • Tom started the discussion in November 03 with his Render Loop post where he highlights the high memory allocations that happen using the .DoEvents method.
  • He followed up the same month with Render Loop Revisited where he briefly discusses some alternatives.
  • A brief mention in his Speed of Managed DirectX post points out that even though the samples use .DoEvents they still run with similar framerates as the unmanaged samples
  • Jump forward to June 2004 with Renderloop re-Revisited where he talks about the change in the summer 04 framework to use PInvoke and not .DoEvents
  • March 2005 and Rick comes up with what he considers to be the Ideal Managed render loop.
  • March 2005 (again). Rick decides that there was a bug in his previous solution and posts an improved version
  • May 2005. Tom puts it all together, makes some small changes and puts the result into the upcoming June SDK.
  • May 2005 (again). Rick comments on Tom's final solution and adds perf and garbage collection numbers.

My opinion, and as with all free advice you get what you pay for, is that for the kind of projects most of us are working on it really doesn't matter. Pick one and go with it. The memory allocations with .DoEvents are high but its all going to be generation 0 garabage collected anyway, you are much more likely to screw up something in your own code that causes worse memory issues. As for the increased framerate - unless you are a computer graphics genius there are likely to be algorithmic issues to do with your rendering that will dwarf the effect that the render loop has.

相关文章:

  • dqn推荐系统_推荐系统遇上深度学习(十四)--《DRN:A Deep Reinforcement Learning Framework for News Recommendation》...
  • 今天配置了mantis
  • jupiter 依赖_Jupiter——看一眼就能记住的可爱大橘!
  • c# 线向量生成多边形_C#多边形求角——实例说
  • 《疯狂的程序员》序
  • 多元线性回归算法python实现_机器学习算法python实现-线性回归
  • 正确的座机号码格式_简历里的手机号及座机号的标准写法是什么?正确书写才更可能求职成功!...
  • 《走出软件作坊》序
  • python dict key顺序_python的dict中dict.keys()和dict.values()的提取是否遵守某种固定顺序?...
  • find linux 目录深度_linux find 命令查找文件和文件夹
  • 国际商务英语学习[十五]
  • redis统计用户日活量_使用redis统计用户日活、月活(实践版)
  • SerialPort类连接串口
  • labiview ni python_高效全能架构大前端精品教程python学习网站 百度云 百度网盘下载...
  • 更趋实用的Amazon Web Services
  • 【译】JS基础算法脚本:字符串结尾
  • $translatePartialLoader加载失败及解决方式
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 2019.2.20 c++ 知识梳理
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • Android 架构优化~MVP 架构改造
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • ComponentOne 2017 V2版本正式发布
  • cookie和session
  • golang中接口赋值与方法集
  • HTML-表单
  • java中具有继承关系的类及其对象初始化顺序
  • js对象的深浅拷贝
  • Making An Indicator With Pure CSS
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • yii2权限控制rbac之rule详细讲解
  • 初识 beanstalkd
  • 多线程 start 和 run 方法到底有什么区别?
  • 回流、重绘及其优化
  • 前端临床手札——文件上传
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 首页查询功能的一次实现过程
  • 思考 CSS 架构
  • 学习ES6 变量的解构赋值
  • nb
  • Mac 上flink的安装与启动
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • #ifdef 的技巧用法
  • (Forward) Music Player: From UI Proposal to Code
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (搬运以学习)flask 上下文的实现
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (简单) HDU 2612 Find a way,BFS。
  • (三十五)大数据实战——Superset可视化平台搭建
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (四)c52学习之旅-流水LED灯