2013-04-17

使用mklink将resharper cache放到ramdisk

笔记本现在有12G内存,有点奢侈了,所以就用ramdisk把其中的2G做了个内存盘(Z:),把整个便携chrome放到了内存里,速度飞快。还剩1G多内存,就像把resharper的cache放到z盘。发现resharper不能自定义cache路径,只有三个选项:(1)放到系统临时目录,就是在环境变量指定的temp目录,我设置为d:\Temp。(2)放到项目文件夹 (3)local setting 文件夹,就是c盘自己用户名下的appdata之类的目录。由于系统洁癖原因,不想放在 (2)或者(3)但又不想把整个temp放到z盘:就想把单独的resharpercache放到z盘
网上搜了搜,找到了完美的解决方案:使用mklink命令创建目录快捷方式:
1) 先把原来的目录剪切到目标位置
2)mklink /j d:\temp\ResharperCache z:\resharpercache

这样,visual studio还是用d:\temp\ResharperCache,但是底层实际使用的是后者,前者只是一个快捷方式,实际文件都在z:\resharpercache目录下。相当于作了一次跳转吧。也可以使用 /d,区别不大。网上也有很多用此来转移Windows用户文件,chrome用户文件,缓存的例子。

参考

2013-01-27

二分查找

 using System;  
 namespace 算法  
 {  
   class Program  
   {  
     static void Main(string[] args)  
     {  
       // 已排序数组  
       var a = new[] { 1, 2, 4, 5, 7, 9, 23, 45, 67, 89 };  
       Console.WriteLine(BinarySearch(a,89));  
       Console.ReadLine();  
     }  
     /// <summary>  
     /// 二分查找  
     /// </summary>  
     /// <param name="x">数组</param>  
     /// <param name="find">要查找的值</param>  
     /// <returns></returns>  
     private static int BinarySearch(int[] x, int find)  
     {  
       int low = 0, high = x.Length - 1;  
       while (low <= high)  
       {  
         int mid = (low + high) / 2, cmp = x[mid].CompareTo(find);  
         if (cmp < 0)  
         {  
           low = mid + 1;  
         }  
         else if (cmp > 0)  
         {  
           high = mid - 1;  
         }  
         else  
         {  
           return mid;  
         }  
       }   
       return -(low + 1);  
     }  
   }  
 }