最近有几个程序的性能很成问题,所以做了一些调试方面的工作,主要工具就是 Intel VTune Performance Analyzer。
VTune 的门槛比较高,上手很慢。摸索着用了用找了几本相关的书:阅读全文>
发表于 @ 2009年01月13日 13:31:00 | 评论( loading... ) | 举报| 收藏
Ruby on Rails 2.2 Release Notes
1、试用了一下 Ruby on Rails 2.2,感觉还不错,挺方便的。
2、就是网上的入门文章大多数版本较低,在 Ruby on Rails 2.2 中很多东西都变化了,需要找新一些的 Ruby 2.0 的文章来看,否则一团雾水
有时间继续看 Ruby on Rails 2.2
的架构和核心概念,其中有些概念和规则对项目的管理还是有些益处的
Gem、Ruby、Rails、Rake、REST、RESTful、ROA阅读全文>
发表于 @ 2008年12月12日 12:02:00 | 评论( loading... ) | 举报| 收藏
前两天买了一个 BenQ 92W 宽屏 LCD, 老觉得看电影效果不是很好,看照片到是很清晰,从网上搜罗了一下,发现 Microsoft 提供一些高清晰的视频片段,呵呵,正好拿来测试一下效果,看到底是不是视频本身的问题。。。。。。阅读全文>
发表于 @ 2006年10月09日 18:34:00 | 评论( loading... ) | 举报| 收藏
.NET Framework 3.0 是由 Windows 编程模型演变而来。它建立于 .NET Framework 2.0 的基础之上并加以扩展,目的是支持现代应用程序的构建。为此,该 3.0 版本采用了大量的最新技术,可以解决当今应用程序开发中的种种难题。通过在公共基础上建立这种多样性,Microsoft 致力于使软件的整体效果大于各个部分之和,从而让开发人员以更加一致的方式使用 .NET Framework 3.0 的不同部分来构建应用程序。阅读全文>
发表于 @ 2006年09月21日 10:27:00 | 评论( loading... ) | 举报| 收藏
【编程】工具 - Inside CRT: Debug Heap Management(转帖)阅读全文>
发表于 @ 2006年08月16日 14:46:00 | 评论( loading... ) | 举报| 收藏
在网上找了半天才找到的 Compuware 全套产品的许可文件(License.xml)
可用于 DevPartner Studio Professional Edition Version 8.0 的许可文件,其中还包括其他许可,例如
DevPartnerVB
DevPartnerVC
DevPartnerSecurityChecker
DevPartnerRemote
DevPartnerRemoteDA
DevPartner64
DEVPARTNER_FAULT_SIMULATOR
BoundsChecker
BoundsCheckerD
DriverStudio
SoftICE-Suite
VisualSoftICE
DevPartner
等
破解 注册版 注册机 Crack Keygen SN 序列号
阅读全文>
发表于 @ 2006年07月26日 12:10:00 | 评论( loading... ) | 举报| 收藏
今天在改进文件监视程序时写的框架代码,监视文件修改(采用完成端口和ReadDirectoryChangesW同时在一个线程中监视多个目录,并且能够判断文件是否完全复制完毕)阅读全文>
发表于 @ 2006年06月12日 15:46:00 | 评论( loading... ) | 举报| 收藏
如果在程序中打开最高级别的编译警告选项,并且在适当的地方加入如下语句
#pragma warning(default: 4511)
#pragma warning(default: 4512)
则编译器会检查那些没有声明“拷贝构造函数”和“赋值操作符重载”的类,并且报告 C4511 和 C4512 编译警告,例如:
class Class1
{
public:
Class1();
virtual ~ Class1();
};
我们只要加上“拷贝构造函数”和“赋值操作符重载”声明即可消除这个警告,并且这样也符合著名的“大三规则”,即:如果一个类需要任何下列的三个成员函数之一,便三者全部要实现,这三个成员函数是:拷贝构造,赋值操作符,析构函数。
class Class1
{
public:
Class1();
virtual ~ Class1();
public:
Class1(const Class1&); // 拷贝构造函数(消除 C4511 编译警告)
Class1& operato阅读全文>
发表于 @ 2006年05月08日 16:18:00 | 评论( loading... ) | 举报| 收藏
今天在调试程序时候发现某个线程中的 rand() 随机函数每次运行都返回同一个数据,检查了程序,在程序中也调用了 srand(GetTicketCount()) 来初始化随机数生成器,那为什么每次运行结果还一样呢???
后来发现,这个问题和多线程有关,跟踪 srand 和 rand 的函数内部后发现,其实 srand 和 rand 内部是使用了TlsGetValue等函数来存储随机数种子了,也就是说,这个随机数种子对每个线程都需要初始化一次 srand,而以前的代码是在主线程中初始化了一次,当然每次的结果都一样了。
void __cdecl srand (
unsigned int seed
)
{
#ifdef _MT
_getptd()->_holdrand = (unsigned long)seed;
#else /* _MT */
holdrand = (long)seed;
#endif /* _MT */
}
_ptiddata __cdecl _getp阅读全文>
发表于 @ 2006年04月05日 17:22:00 | 评论( loading... ) | 举报| 收藏
免费的在线阅读电子书
http://www.itzero.com/0day/0day_ebook_OL_read/Index.html
阅读全文>
发表于 @ 2006年03月23日 09:49:00 | 评论( loading... ) | 举报| 收藏
今天在用优化代码时发现有几个程序在 DevPartner Performance Analysis 中始终没有源代码分析结果。
开始还以为是 DevPartner Performance Analysis 设置问题,弄了半天,后来经过仔细比较,原来是程序中包含了一个用于优化程序大小和速度的头文件, 而这个头文件中又包含了下列语句
#pragma comment(linker,"/merge:.text=.data")
就是加上这个合并段后优化导致 DevPartner Performance Analysis 认为程序没有源代码,郁闷郁闷!把这句话注释掉后 DevPartner Performance Analysis 就分析正常了。阅读全文>
发表于 @ 2006年03月10日 18:50:00 | 评论( loading... ) | 举报| 收藏
解开 Windows 下的临界区中的代码死锁
Matt Pietrek和 Russ Osterlund
本文假定您熟悉 Win32、C++ 和多线程处理。
下载本文的代码:CriticalSections.exe (415KB)
摘要
临界区是一种防止多个线程同时执行一个特定代码节的机制,这一主题并没有引起太多关注,因而人们未能对其深刻理解。在需要跟踪代码中的多线程处理的性能时,对 Windows 中临界区的深刻理解非常有用。 本文深入研究临界区的原理,以揭示在查找死锁和确认性能问题过程中的有用信息。它还包含一个便利的实用工具程序,可以显示所有临界区及其当前状态。
在我们许多年的编程实践中,对于 Win32® 临界区没有受到非常多的“under the hood”关注而感到非常奇怪。当然,您可能了解有关临界区初始化与使用的基础知识,但您是否曾经花费时间来深入研究 WINNT.H 中所定义的 CRITICAL_SECTION 结构呢?在这一结构中有一些非常有意义的好东西被长期忽略。我们将对此进行补充,并向您介绍一些很有意义的技巧,这些技巧对于跟踪那些难以察觉阅读全文>
发表于 @ 2006年03月10日 10:54:00 | 评论( loading... ) | 举报| 收藏
今天打开一个 CHM 文件,突然就不能显示了,右侧显示 “无法显示网页" 上 Google 一查,说是什么因为打了新的补丁,安全性问题,要修改注册表等等,折腾了半天还是没用:(
最后,发现原来是我的目录名称有问题,目录名称中有 "#" 字符,去掉有 CHM 文件就显示正常了,真是服了 MS 了!
阅读全文>
发表于 @ 2006年03月08日 14:22:00 | 评论( loading... ) | 举报| 收藏
所谓的AJAX(Asynchronous JavaScript + XML)只不过是对异步 JavaScript + XML 等技术的混合。
浏览器端
1、数据处理:在不用重新装载整个页面的前提下,
使用浏览器所支持的 JavaScript 语言异步的与服务器端进行交互,
从而对 XML 或其他格式的数据进行交换和处理,或者远程调用服务器端的方法。
2、用户界面:在不用重新装载整个页面的前提下,
使用浏览器所支持的 JavaScript 语言来操作 XHTML、CSS、DOM 等技术,
实现动态用户界面的显示与交互,尽量让用户有桌面应用程序的感觉。
服务器端
1、脚本生成:服务器提供完整的 HTML/Javascript 代码生成机制。
2、远程调用:服务器提供对浏览器端通过 Javascript 调用服务器端功能(例如Jav阅读全文>
发表于 @ 2006年02月22日 17:45:00 | 评论( loading... ) | 举报| 收藏
在皮肤界面中,最难的恐怕就是自画窗口标题了,网上虽然有各种各样的解决方法,但是都不是很完美,而商业皮肤界面程序包是需要花钱买的。
没办法,只有自己摸索了,最后,去研究了一下 Windows 2000 的核心代码中关于窗口管理部分,终于算是比较满意的解决了这个问题。阅读全文>
发表于 @ 2005年04月27日 12:07:00 | 评论( loading... ) | 举报| 收藏