最近万网搞活动,域名29,虚拟主机免费,有小朋友动了建博客的念头,于是申请好了域名、虚拟主机。但是不知道后续该如何处理,乐于助人的我自然是要帮他一把的。

选框架

小朋友选的是windows主机,简单搜索了一下,zblog貌似不错,好吧,就选它了,官网链接http://www.zblogcn.com/,下载ASP版http://www.zblogcn.com/zblog/,当前最新版的Z-Blog 2.2 Prism Build 140101。

解压后会看到一个release文件夹,由于后续要将release文件夹里的文件放在主机根目录,所以还要再压缩一次,格式还必须是rar,如下图所示

阅读全文 »

DebugDiag使用指南

Foreword

一直都是用windbg进行调试,但是主要通过CLI操作,现在的小朋友被GUI带坏了,都说学不会用。为此,还得找个略微简单的工具。
恰好找到了DebugDiag,据说很简单,微软原文如下:

The right debugging tool can dramatically simplify the isolation of these problem s and the provision of solutions. There are several types of these issues for which the Debug Diagnostic Tool is a better choice than other debugging tools

Using the Windows core debuggers (Windbg.exe or Cdb.exe) for post-mortem analysis is a time consuming process and requires many debugging skills.

试用之后,果然比较简单,功能也很强大。这么个挺好用的工具,还是值得安利一下的。鉴于帮助文档大多是英文版,我就顺手把How to Use the Debug Diagnostic Tool (DebugDiag) to Debug User Mode Processes翻译一下。

阅读全文 »

背景

配置 参数
系统 win32
CPU E5505
内存 4G

某程序在运行过程中峰值达到1.8G,此后在申请小块内存时出现异常,此时进程只使用了900M内存。
如你所知,windows 32bit的每个进程可用虚拟内存是4G,其中内核态2G,用户态2G(打开3G开关后就会是3G,但是不建议打开)。异常时,进程尚有近1G的内存可用,但为什么会抛出异常呢?
真的是内存碎片造成的吗?

阅读全文 »

背景

组里有许多初学C++的小朋友,对于STL及算法的时间/空间复杂度的敏感性不强,写出来的代码虽然完成了功能,但是运行时间过长,占用内存都过大。

老夫虽给小朋友们科普过几次,但效果还不是特别理想,有道是不掉坑,不长记性,古人诚不欺我。可势必不能把性能问题流到后端,老夫不得不在持续集成上增加一道小菜——检测运行时间、内存峰值及均值。

大概原理:写个脚本

  1. 取得构建包列表。下载没有测试过的最新的包。
  2. 读配置文件,获取测试用例,期望运行时间,期望内存峰值及均值。
  3. 自动运行程序,每1s采样一次进程内存大小,记录在日志里。
  4. 当程序结束时,计算运行时间间隔,与期望值比较,如果超出,则红。
  5. 分析之前记录的内存日志,求出峰值和均值,如果超出期望,也红。
阅读全文 »