•  

     

    昨日友人送我几包来自俄罗斯的MacCoffee(其实是我自己索要的,哈),细品之后,别有一份异域风味。

    普 通的速溶咖啡包装,但是开袋后,很快就问道一股浓烈的咖啡的苦味和烘焙的味道。用水冲了,有丰富的泡沫,然后是清澈的咖啡,不像平常的雀巢那么浑浊。慢慢 喝一口在嘴里,首先是淡淡的甜味,然后是清晰的苦味,入喉的时候变成甘苦交融,我感觉自己的词语匮乏,无法形容这种奇妙的感觉。喝完之后,嘴里久久停留着 甜的,苦的味道,仿佛是在不停的纠缠,好似纠结在一起,分也分不开。

    MacCoffee,不一样的咖啡。

     

  • 昨天看了《金氏漂流记》,其中有几句感人的台词:

    从HELP到HELLO

    沙滩上的文字,从最初的求救的HELP,到后来想困难问好的HELLO,这是一种豁然开朗的态度

    希望是一切的动力

    就为了吃一碗炸酱面,可以克服一起难以想象的问题

     

     

  • 再回首


    再回首
    云遮断归途
    再回首
    荆棘密布
    今夜不会再有难舍的旧梦
    曾经与你共有的梦
    今后要向谁诉说
    再回首
    背影已远走
    再回首
    泪眼朦胧
    留下你的祝福
    寒夜温暖我
    不管明天要面对多少伤痛和迷惑
    曾经在幽幽暗暗反反复复中追问
    才知道平平淡淡从从容容是最真
    再回首恍然如梦
    再回首我心依旧
    只有那无尽的长路伴着我
  • 作为程序员,谁都希望自己的软件性能优异,运行如飞。但是当我们在看到自己开发的软件像蜗牛一样慢吞吞地运行,半天没有反应的时候,我们常常会有这样一些疑问:

      “我的系统都在忙些什么?CPU在干啥?”

      “为什么我的软件性能表现这么低下?”

      “哪里才是软件的性能瓶颈?什么代码导致了软件的性能低下?”

      “软件运行到了什么状态?”

       面对这些问题,程序员们都在想,要是有个软件仪表仪表,就像汽车的仪表盘一样,能够实时向我们报告系统和软件的运行状态就好了!现在,在Windows 7中,程序员们的这个梦想成为了现实。通过Windows 7所提供的Performance Counters,Event Tracing for Windows (ETW) ,Windows Management Instrumentation以及Windows Performance Toolkit,我们可以实时地获得系统和在其上运行的各种软件的性能状态信息,圆满地回答上面这些问题。利用这些丰富的状态信息,我们可以对应用程序进 行诊断调试,性能分析,找到性能瓶颈,从而对其进行性能调优,给蜗牛软件插上飞的翅膀。

      图1  我不是蜗牛,我是飞牛

      关于性能分析的这十八般武器各有所长,这里我们先介绍性能计数器。

      Performance Counters(性能计数器)

      当我们在开发一些对性能期望较高的软件的时候,简单高效的性能计数器对发现软件中的性能瓶颈是很有价值的。虽然我们可以自己实现简单的性能计数器,但是,使用Windows操作系统本身所提供的Performance Counters(性能计数器),我们可以获得更多得天独厚的优势。

       性能监视,是Windows NT引入的一种系统功能。从Windows NT以后,Windows操作系统总是集成了各种性能监视工具,它提供有关操作系统当前运行状况的信息,针对各种性能对象提供了数百个性能计数器。性能对 象,就是被性能计数器监视的对象,我们通常比较关心的监视对象主要有Processor、Process、Memory、TCP/UDP/IP /ICMP、Physical Disk等。性能计数器通常提供操作系统、应用程序、服务、驱动程 序等的性能相关信息,以此来分析系统瓶颈和对系统及应用程序性能进行诊断和调优。除了针对操作系统本身,通过性能计数器机制,我们也可以在应用程序或者是 操作系统组件中向性能监视器(Performance Monitor)报告一些与性能有关的统计信息,以此来查看软件的性能信息,对其进行诊断和调优。

       在Windows 7中,微软对性能计数器做了进一步的改进和优化。例如,采用了新的2.0版本的核心模块API、采用XML定义、更加强大的性能、更高的可扩展性和鲁棒 性、增加了多个系统计时器等等。同时,为了方便系统管理员进行管理,还增加了PowerShell对计时器日志文件的处理功能等等,使得性能计数器的功能 大大增强。

     

    阅读全文:VS与Win7共舞:性能计数器进行性能分析

  • 【IT168 专稿】在上文中,我们简要地介绍了Windows 7所引入的新的文件管理方式:库(Library)。介绍了库的缘起,库的表现和实质。那么相信大家会接着问:如何对库进行操作呢?如何让我们自己开发设 计的应用程序支持库这一新的文件管理方式?或者是如何让我们的应用程序更好地利用这一新的文件管理特性?

      对库进行编程

      在Windows 7操作系统中,我们可以手动地对库进行管理,进行库的创建,文件夹的添加和删除等等。但是作为程序员,我们更加关心的是如何以编程的方式对库进行操作。为了帮助我们在应用程序中使用库这种新的文件管理方式,Windows 7为我们提供了一组API用于库的编程开发。

      

      图1  与库相关的API

      其中,位于最顶层的用户界面API包括我们之前提到的通用文件对话框CFD,导航栏树形控件等等。使用新的用户界面API,我们可以调用支持库的新版通用文件对话框,从而让我们的应用程序在打开或者保存文件时,可以支持库这一新的特性。 

     

    private void button1_Click(object sender, EventArgs e)

          {

              
    string strPath;

              
    // 创建新版的通用保存文件对话框

              System.Windows.Forms.SaveFileDialog _fd
    = new System.Windows.Forms.SaveFileDialog();

              
    // 设置对话框的各种属性

              fd.Title
    = "请选择文件保存的位置";

              fd.FileName
    = "[选择文件夹…-]";

              fd.Filter
    = "Library|no.files"; // 设置可选项,只能选择Library

              
    // 显示对话框

              
    if (_fd.ShowDialog() == System.Windows.Forms.DialogResult.OK)

                  {

                  
    // 获取用户选择的结果

                  
    string dir_path = System.IO.Path.GetDirectoryName(_fd.FileName);

                  
    if (dir_path != null && dir_path.Length > 0)

                      {

                      
    // 传递用户选择的路径

                      strPath
    = dir_path;

                      }

                  }

                  
    // 利用用户选择的路径进行后继处理

          }

      通过使用新版的通用文件对话框CFD,我们可以轻松的让我们的应用程序支持库这一新的文件管理方式。

       除了用户界面API,我们重点关注的是位于中间的Shell API。利用Shell API,我们可以对库进行管理,实际上就是通过Shell API修改.library-ms这个文件,当这个文件被修改后,系统会读取这个文件的信息对库进行重新组织。这组Shell API包装了多个COM对象,利用这些对象,我们可以对库进行操作,其中几个比较常用的对象是:

      •IShellLink 这个对象代表到文件、 文件夹,或可执行文件的一个链接

      •IShellFolder 对象实际上代表着一个文件夹对象,我们可以通过遍历IShellFolder对象,访问这个文件夹下的所有内容,检索文件夹中的项目的显示名称、 分析文件夹的显示名称和获取文件夹下的项目 ID 列表等等

      •IShellLibrary是Windows 7新引入的一个对象,它与一个库相对应。通过这个对象,我们可以对库进行各种操作。

      另外,Shell API也提供了多个辅助函数用于对库进行操作,比如:

      •创建库

      •打开一个已经存在的库

      •添加文件夹到库中或者删除一个库中的文件夹

      •获得一个库的文件夹列表

      •获得或者设置库的各种选项

      •获得或者设置库的图标

      通过这些Shell API,我们完全可以操作系统中的库,对其进行操作和管理。

     

    阅读全文:与Windows7共舞:对库进行编程