reload form
实在不行就
dispose 再 new

解决方案 »

  1.   

    我认为可能是由于对同一组文档检索时出现了问题。
    可能是第一种方法检索之后,生成了缓冲快表,那么
    你再一次无论用什么方法检索,检索的命中率都是一
    样的了。
    同意 stingsg(猪头) 的方法,reload...
      

  2.   


    如果你的检索算法包括读取文件,那么由于机器的配置,硬件的不同,你的比较将不会奏效。建议如下:把读取文件的代码,与检索算法分开,对检索算法进行多次循环单独比较。
    例:
    原来的算法:SearchA()
    {
      readfile;
      perform searchA;
    }SearchB()
    {
      readfile;
      perform searchB;
    }SearchC()
    {
      readfile;
      perform searchC;
    }
    现在的算法:Stream[] ReadFile()
    {}SearchA()
    {
      perform searchA;
    }SearchB()
    {
      readfile;
      perform searchB;
    }SearchC()
    {
      readfile;
      perform searchC;
    }main()
    {
      ReadFile()
    }ButtonOnClick()
    {
     switch()
    {
      case a:  for(int i=0;i<100;i++) SearchA();
      case b:  for(int i=0;i<100;i++) SearchB();
      case c:  for(int i=0;i<100;i++) SearchC();
    }
    }
      

  3.   

    现在的算法:Stream[] ReadFile()
    {}SearchA()
    {
      // readfile;
      perform searchA;
    }SearchB()
    {
      //readfile;
      perform searchB;
    }SearchC()
    {
      // readfile;
      perform searchC;
    }main()
    {
      ReadFile()
    }ButtonOnClick()
    {
     switch()
    {
      case a:  for(int i=0;i<100;i++) SearchA();
      case b:  for(int i=0;i<100;i++) SearchB();
      case c:  for(int i=0;i<100;i++) SearchC();
    }
    }注:如果txt文件s的大小<(你的机器的内存/4) 则有效其实,算法效率有很多影响因素,你不能有一个完美的测试手段,必须假定一个环境进行测试。
      

  4.   

    猪头的方法不行啊,dispose以后我的form都没有啦,呵呵。
    用bassil的方法可以了。
    不过我还是想知道是否有释放缓存的方法?