exe->生成.xml ->dll load(xml) ->打印  ,
 
如xml文件60M 运行很慢, 我想用文件映射可以优化

解决方案 »

  1.   

    如果这60M在内存呆着,是很恐怖的。既然你用了dll,怎么能是两个进程之间通信呢?除非dll不是你的进程调用的。看你这意思,你用的dll中解析xml的东西应该是不会有接口允许你分批的传入的xml源代码。如果是这样,那么无论是不是同进程,都没有办法优化。
      

  2.   

    既然你用了dll,怎么能是两个进程之间通信呢?  不明的,用了dll才能说在两个进程(Exe,dll),xml是exe生成的,由dll引用msmxl4.0读出xml内容并打印...现在的问题怎样不要重复打开xml文件
      

  3.   

    exe会调用dll的方法,并传入xml文件的物理路径
      

  4.   

    说了半天dll调用msxml4.0还是本金城内阿,但你是要“不要重复打开xml文件”,这大概是不可能的了。因为msxml4.0好像除了提供按照路径装载xml还提供按照你传入的xml源代码来解析,但是即便是后者都不支持分步传入解析,那你还得一下子把xml的60M的源代码传进去,这还不如直接传路径。除非你写一个自己的xml解析器,否则无法用“映射文件”的方法优化。但是你可以试图减少一次生成的xml文件的大小,多生成几次,多装载几次。就是说你得改变设计思路,来避免无法实现的“不要重复打开xml文件”。
      

  5.   

    to stanely : 你还是按步就班的原则..你说不行,哪有什么好法子,我恭听... 你生成多个xml文件,不行
    我主要是想实现: 报表与系统无关,报表是为系统服务,系统不考虑报表的因素,系统更不可能为了报表将文件拆成n个文件