|
jawbin
高级用户
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
『第
121 楼』:
我讨论的正是史前时代,哈哈!
以后的话,可能想大踏步地迈进"共产主义"时代, 到 Vista 梦幻乐园吹吹风...
另外我讲的就是字面, 呵呵, 它这么叫, 名不副实不是我的错, 哈哈!
[ Last edited by jawbin on 2006-5-28 at 22:19 ]
|
|
2006-5-28 22:18 |
|
|
jawbin
高级用户
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
『第
122 楼』:
想不到居然这么晚了, 休息咯!
|
|
2006-5-28 22:26 |
|
|
zyl910
中级用户
积分 282
发帖 126
注册 2006-5-17
状态 离线
|
『第
123 楼』:
//从zyl910 兄的经历来看, RAD 有时候不仅增加开发速度,也不输运行速度,瞧我这中文,听起来别扭..
嘿嘿
那个是图像插值缩放程序
自己编码实现图像插值缩放程序
从VB5开始,VB程序能编译成本机代码,而且编译优化也做得不错
跟C/C++编译器处在同一级数,唯一就是缺乏指针语法
注意不是现在的Java、.Net那样的解释器
我由于用SoftICE跟踪过VB程序
特别是看过Matthcw Curland写的《Advanced Visual Basic》(此人被微软请去开发VB编译器,此书专写VB编译器细节,不懂Win32汇编和底层COM原理的人绝对看不懂。所以我很怀疑此书还算作VB书,简直是编译器实现原理)
了解许多VB编译器细节
在写那个程序时,先将算法优化到极致,尽量减少运算量
在计算坐标时,根据Bresenham算法思想,完全使用整数加减实现坐标计算
在计算插值时,将那些乘法优化成查表,避免了浮点运算,精度高速度快
整个程序基本上是由整数加减与查表实现的,只有少数几个整数乘法
很多人在优化程序时
只注意高层算法优化 及 指令细节优化
完全忽视了整数运算、位运算优化 和 查表优化
我与他的算法已经优化到极致了
但他忽视了整数运算、位运算优化 和 查表优化
乘法指令 绝对比 整数加减、数组查表 慢
就算你考虑了细节优化也一样
只有使用MMX、SSE等并行指令才能摆脱这尴尬局面
可能就是因为现在有MMX、SSE等并行指令集
在MMX等并行指令集 下 无法查表优化
再者那些老外大多从计算机早期搞起的,位运算、查表 已经滚瓜烂熟,觉得再提这些东西没什么意思
在现代的 超流水线、超标量 处理器 中,指令序列会影响速度
所以老外强调这些东西,也就是MMX等并行指令集下的优化技巧
而国内很多人只关注前沿,并没有注意其边界,忽略了很多基础东西
以为 跟上了前沿的自己 水平很高
(如果当年中国没那么快转向Windows平台,而是扎扎实实的在DOS平台下学习技术,有可能软件业不会是现在这个样子)
//在以前的 Windows 中, 据 未公开的 Windows 核心技术 这本书讲, Kernel 模块使用了 User 中的至少下述符号:
//IsUserIdle, GetFocus, IsWindow, GetWindowTask,PostMessage.
//在这里,可能还遗漏了其他的通过 GetProcAddress 来引入的符号.
这个是必须的
我曾经想过自己在DOS下模拟Win32API体系,发现内核无论如何都得使用某些非内核函数
其实最难处理的虚拟内存管理
内存交换文件是存放在磁盘上的
而由于文件系统的多种多样,所以一般做成可动态加载的驱动程序
而动态加载驱动程序又得使用虚拟内存管理
鸡生蛋、蛋生鸡……
// 我是从来没把 MS 声称的 kernel 当回事(当成真正的核心), 因为它并不名副其实, 所以我都是用它的官方术语或者字面来描述.
kernel32.dll(或Windows早期的kernel.exe)只是 内核API 接口,并不是操作系统内核
而单独的 kernel 这个词代表内核,具体的实现细节未知
[ Last edited by zyl910 on 2006-5-29 at 10:47 ]
|
人类存在的目的就是试图理解人类为何存在 |
|
2006-5-29 10:33 |
|
|
jawbin
高级用户
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
『第
124 楼』:
由于 PC 硬件现在已经很好了, 而且还继续, 所以"开发越来越容易"也就不足见怪了, 通常都不需要特别注意资源的使用和运行效率. 但是开发工具的生产者肯定会多少关注这些.
象 zyl910 兄这样追求完美的人, 现在是很少有了.
另外若真正开发一个 OS 的话, 势必应该分出驱动层, 但是面对众多的硬件, 自己写驱动恐怕都是"不可能的任务", 但是别人写的, 你又信得过吗? 而驱动会影响 OS 的性能甚至稳定性,健壮性等等. 难度不可谓不大.
|
|
2006-5-29 10:50 |
|
|
jawbin
高级用户
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
『第
125 楼』:
在我前面的上下文中, Kernel 是指 MS Windows 中的名称为 "KERNEL" 的模块, 而中文"内核"或"核心"才是一个普通应用(我通常从统计学的角度来使用普通这个词汇, 具体的说, 就是多数, 甚至绝大多数)所直接依赖必不可少的部分.
这样就很混淆,哈哈.
|
|
2006-5-29 10:54 |
|
|
jawbin
高级用户
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
『第
126 楼』:
从超星没查到 Advanced Visual Basic, 作者好象就是讲 VB 指针的那位高人. 可惜从没仔细拜读.
|
|
2006-5-29 10:58 |
|
|
jawbin
高级用户
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
『第
127 楼』:
另外在 dos 下模拟 Win32 仿佛可以先不用 zyl910 兄做了, 已经有了. 而且, 在我后来的想法里, 不如搞一个"跨平台"样的, 而不仅仅象一个 "DOS 下的 Windows 虚拟机". 而且, 事实上, 如果能完全实现 Windows 的功能, 那么和 Windows 有何区别? 使用比 Windows 更少的资源, 优化得更多? Windows 的开发花费了那么多人力, 一个人要完全实现, 实在不可想象. 现成的模拟有 ReactOS, 另外郭恒也搞了个有点点类似的东西, 但是是基于 DOS 的. 在这个版能找到他的帖子, 里面有地址可以下载到, 是主要针对嵌入式系统的.
|
|
2006-5-29 11:06 |
|
|
jawbin
高级用户
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
『第
128 楼』:
Quote: | Originally posted by zyl910 at 2006-5-29 10:33 AM:
而由于文件系统的多种多样,所以一般做成可动态加载的驱动程序
而动态加载驱动程序又得使用虚拟内存管理
鸡生蛋、蛋生鸡…… |
|
如果要"考虑周全", 有时候系统是非常复杂甚至无法实现的吧.
所以有时候可能只需要考虑"大多数"就可以了. 例如实际情况中,可能所使用的文件系统就那么几种,只要先支持这几种.
早期的 DOS 启动遇到类似的问题好象是指定物理位置来解决. 总得有个开始, 才能继续. 不管是看起来多么糟糕的开始.
|
|
2006-5-29 11:19 |
|
|
asbai
高级用户
积分 653
发帖 252
注册 2006-4-16
状态 离线
|
『第
129 楼』:
Quote: | Originally posted by jawbin at 2006-5-29 11:19:
如果要"考虑周全", 有时候系统是非常复杂甚至无法实现的吧.
所以有时候可能只需要考虑"大多数"就可以了. 例如实际情况中,可能所䠮.. |
|
一步一步来是没办法的事,但是一开始总要把能想到的问题尽可能想全,留出可扩展的框架便于以后改进。
另外,驱动的问题在PC平台是除了Windows以外所有OS都头痛的问题Windows有一线厂商的全面支持和自己的驱动可靠性认证程序。。。。有钱就是爽,呵呵。
不过linux和freebsd的驱动库稳定性和全面性也都不错,这些OS本身又是开源的,可以考虑做一个linux/freebsd的驱动适配层,直接用它们的驱动。
犹他大学搞得OSKit就是这样的,该kit本身体积也很小巧,还内置了COM接口、pthread库各种功能乃在艰苦环境下开发嵌入式环境的居家旅行、野外打鸟必备佳品
|
|
2006-5-29 11:36 |
|
|
jawbin
高级用户
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
『第
130 楼』:
哇, asbai 兄又带来了好工具,收藏!
但愿最后不要变成只是盲目收藏而不懂欣赏的可悲下场。。。好东西太多了,恐怖了。。
[ Last edited by jawbin on 2006-5-29 at 12:13 ]
|
|
2006-5-29 12:11 |
|
|
jawbin
高级用户
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
『第
131 楼』:
我也想过在不同的情况下都有“移民局”,source级,二进制级。。专门负责外来模块的接待和转化工作
但是支持的种类越多,就越庞大,而且可能与总体设计思想偏离得更多,还可能性能不佳。。。
[ Last edited by jawbin on 2006-5-29 at 12:18 ]
|
|
2006-5-29 12:17 |
|
|
jawbin
高级用户
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
『第
132 楼』:
Quote: | Originally posted by asbai at 2006-5-29 11:36 AM:
一步一步来是没办法的事,但是一开始总要把能想到的问题尽可能想全,留出可扩展的框架便于以后改进。
另外,驱动的问题在PC平台是除了Wind ... |
|
asbai 兄误会了哦,我指的是系统启动的开始,而不是系统设计的开始 :P
|
|
2006-5-29 12:27 |
|
|
jawbin
高级用户
积分 994
发帖 444
注册 2005-1-29
状态 离线
|
『第
133 楼』:
娱乐一下(来自网上):
今天我接到由三星公司来的信,说我中了一等奖~爱丽舍家庭轿车一辆,要不是我查了网站才知道是骗局差点惨了!我才读中学二年级,他们都骗,这还是人吗?
代骂业务:
[电话骂不停]
业务介绍,通过国际网络电话,采用最先进自动骂街技术,包含50多种方言,1000多条骂人术语。
[ Last edited by jawbin on 2006-5-29 at 16:25 ]
|
|
2006-5-29 13:25 |
|
|
zyl910
中级用户
积分 282
发帖 126
注册 2006-5-17
状态 离线
|
『第
134 楼』:
Quote: | Originally posted by jawbin at 2006-5-29 10:58:
从超星没查到 Advanced Visual Basic, 作者好象就是讲 VB 指针的那位高人. 可惜从没仔细拜读. |
|
书评:
http://dev.csdn.net/develop/article/13/13308.shtm
VB和COM的宝书
Matthcw Curland著,涂翔云等译,《高级Visual Basic编程》(Advanced Visual Basic)。中国电力出版社,2001.5,¥55.00
《高级Visual Basic编程》(Advanced Visual Basic)
作者 Matthcw Curland著 涂翔云等译
出版社 中国电力出版社
介绍
本书是微软Visual Studio的资深专家Matthew Curland多年VB开发经验的总结,着重于解决VB程序员编程时所遇到的困难。由浅入深,循序渐近地讲解了如何开发标准的VB代码、高级编程技巧。以及如何通过一些新算法的使用提高编码效率和性能。附带的光盘提供了书中内容的相关代码,稍加扩展即可获得用户自定义类型、轻量对象系统、创建定制窗口以及函数重载等功能。盘中还提供了三个功能强大的类型库,对VB中使用的和由VB产生的类型库进行了修正。
本书适合高级程序员阅读,也可供专业计算机人士参考。
正文
目录
第一章 构建块
1.1 虚指针
1.2 活指针
1.3 VBoost对象
第二章 使用数组
2.1 数组描述符
2.2 读取数组变量
2.3 写入到数组变量
2.4 数组选项:超出固定或可变字长
2.5 使用数组的一些小提示
第三章 IUnknown接口:一个未知量
3.1 VB和IUnknown接口
3.2 声明IUnknown并调用它的函数
第四章 绑定函数到对象上
4.1 何时绑定对象
4.2 运行时间的名字绑定
4.3 VTable绑定用户定制控件接口
第五章 对象的设计结构
5.1 使用Implements来实现抽象
5.2 调用代码的可插入性
5.3 实现和实现重用
5.4 聚合
5.5 聚台现存的对象
第六章 循环引用
6.1 中间对象解决方案
6.2 弱引用和集合
6.3 转移对象所有权
6.4 层次化对象模型
第六章 外部对象的创建
7.1 使用类工厂进行对象的创建
7.2 直接加载DLL对象
7.3 自定义加载定制化控件
7.4 定制类对象
第八章 轻量COM对象
8.1 关于轻量的基础知识
8.2 结构终止代码
8.3 LastIID的轻量版本
8.4 ArrayOwner的轻量版本
8.5 接口位于何处
8.6 错误的产生及避免
8.7 从轻量对象返回错误
8.8 聚合轻量对象
8.9 编制Query lnterface函数
第九章 大型多对象系统
9.1 使用定长内存管理器
9.2 Scribble示例
第十章 VB对象和运行对象表
10.1 在ROT中注册VB对象
10.2 ROTHook实现细节
第十一章 函数指针的调用
11.1 示例:调用DLLRegister Server
11.2 示例:QuickSort,一劳永逸
11.3 Alpha中的VB函数指针
11.4 堆栈分配
11.5 产生自己的内联汇编
11.6 类函数指针
11.7 使用CDECL函数
第十二章 重载函数
12.1 协作重定向
12.2 接口封装
12.3 瘦接口封装
12.4 封装中的一些问题
第十三章 VB中的线程
13.1 线程中的局部存储
13.2 能否避免排队开销
13.3 线程化或非线程化
13.4 在客户机EXE中创建线程
13.5 STA单元中Coordiate Gate的崩溃
13.6 在DLL中创建工作线程
第十四章 VB中的字符串
14.1 UNICODE转换
14.2 字符串的分配
14.3 作为数值的字符串
第十五章 类型库和VB
15.1 VB产生的类型库
15.2 VB友好的用户定制类型库
15.3 二进制兼容性
15.4 后期构建类型库的修改
第十六章 控制窗口
16.1 子类化
16.2 自定义窗口的创建
16.3 无窗口的控件
附录 VBoost参考
|
人类存在的目的就是试图理解人类为何存在 |
|
2006-5-29 19:19 |
|
|
asbai
高级用户
积分 653
发帖 252
注册 2006-4-16
状态 离线
|
『第
135 楼』:
Quote: | Originally posted by jawbin at 2006-5-29 13:25:
娱乐一下(来自网上):
今天我接到由三星公司来的信,说我中了一等奖~爱丽舍家庭轿车一辆,要不是我查了网站才知道是骗局差点惨了!我才读中学二 ... |
|
十分渴望学习一下那1000多条骂人术语~~
|
|
2006-5-30 15:21 |
|