我想知道:比如一个拥有几十万病毒库的杀毒软件,在杀毒时,怎么能快速把扫描到的文件与病毒库里的文件进行比对啊?像瑞星这样,拥有100多万的病毒库,却能扫描的那么快,如果单单是循环遍历,一个病毒库循环一遍,怎么也不可能一秒钟都不到吧?所以,我觉得杀毒软件并没有完全循环病毒库,但是我百思不得其解,谁能告诉我啊?

解决方案 »

  1.   

    给一楼做点补充:
      所谓的病毒库,就是病毒特征库。很多病毒有共同特征,因此在库中,将病毒分类,建立类似于文件的索引表,
    又将表头建立一个散列表。所以杀毒软件并不需要完全循环病毒库。也就导致了它运行时占用CPU和内存很大。
      不懂的话请查看随便一本数据结构的书。
      

  2.   

    楼上说的不错
    你可以这样想象病毒库.date
      |__  种类1  _ 
      |            |_ 1 
      |            |_ 2
      |            |_ .....
      |
      |__  种类2  _  
      |            |_ 1
      |            |_ 2
      |            |_ ........ 
      |
      |_  种类.........