アンチウィルスソフトウェア Symantec Endpoint Protection と Excel ファイル

ImgBurn でディレクトリーからDVDイメージをつくるさいに、なんか対象ディレクトリー内の"xxxx.xls"というファイル(詳細なファイル名を書いてもしょうがないので"xxxx.xls"とする。サイズは620MBほどある)を見に行くと、そこで処理が止まる。やたらと時間がかかる。
というか、イメージファイル作成って、仕様はいろいろあって実装の面倒くさい、とても簡単とはいえないプログラムだと思うけど、高速化のためにむちゃくちゃこったアルゴリズムを使わないといけないようなものでもないはずだ。
CPUとHDDが早ければ、そんな時間がかかるものじゃない。
実際、これまで ImgBurn を使ってきて、そんなバカみたいな時間がかかったなんてことはない。

なのに数時間かかる。"xxxx.xls"のところで処理がとまり(いちおうプログラムは応答無しにはなってない)、かなりの時間ほっておいてようやく次にすすむ。
けれども、Excelファイルと同じ大きさのファイルもあり、それを処理するのはすぐだ。
なぜ"xxxx.xls"だけ?とか思っていたわけだが、理由がようやくわかった。

問題はアンチウィルスソフトウェアSymantec Endpoint Protectionだった。拡張子"xls"のファイルの中身を調べて、けったいなマクロが混入されてないかを調べているのかと想像するが、620MBのファイルを調べるのにむちゃくちゃな時間を要している*1
Symantec Endpoint Protection を有効にしていたら、DVDイメージ作成に3時間20分もかかった。
Symantec Endpoint Protection を一時的に無効にしたら、DVDイメージ作成は1分19秒で終わった。(対象は当然どちらも同じファイル群)

つか、ばかでかいxlsファイルをあつかうと、ファイル操作用アプリケーション周り*2が妙に不安定になってたんだが、それも Symantec Endpoint Protection のせいかもしれんな。あまりにチェックに長時間かけてしまい、まわりのアプリケーションの足をひっぱってしまっているのじゃないかと思う。システムに食い込むソフトウェアの振る舞いとしては、ちょっと勘弁願いたいものだけど……。対象が対象だけに*3、あまり文句も言えない。

Office 2007でマクロ無しブック(デフォルト。拡張子xlsx)と、マクロ有りブック(拡張子xlsm)とを分けて作るようになったのは、Excelファイルを扱うときに、へんなものに感染する(してる)可能性をいくぶん下げるってのを狙っているのだとは思うけど、アンチウィルスソフトウェアが処理対象から外せるようにもなるね。拡張子xlsxのファイルは300MBぐらいあっても、ImgBurnであつかうときに Symantec Endpoint Protection を有効にしてても特に時間かからないしな。

なお、本日記、アンチウィルスソフトウェア Symantec Endpoint Protection だけで問題が起きるように読まれてしまうかもしれない。けれども、ファイルの内容を確認する処理は別のアンチウィルスソフトウェアでもやってるわけで、Symantec Endpoint Protection だけで発生する問題じゃないだろう。ファイルチェックの仕方によって、Symantec Endpoint Protection のような問題がおこらない(おこりにくい、おこっても気にならない)もの、よりひどいもの、いろいろあると思う。ただ、自分は他のものを、わざわざ試す気はない*4。自分で体験した Symantec Endpoint Protection の事例について書いただけのものだと思ってください。
また、Symantec Endpoint Protection の有効無効で確かに結果は変わっているから、Symantec Endpoint Protection の処理の影響は大きかろうけど、他の要因も加わって、合わせ技で遅くなっているかも知れない。ただ、そこまで調べる気力はない*5

*1:まあ、Excelファイルで620MBってどうよって気はするけどね……。ただ、そういうファイルたくさん抱えている会社はおおくありそうではある。

*2:とくにExplorerとかよく死ぬ……。

*3:ちっちゃいファイルにアホみたいな時間がかかるならともかく、かなり複雑な仕様のはずのExcelファイルが600MB超なわけで……。

*4:面倒くさいし。

*5:そんな細かいことの調べ方なんて、ようわからんし〜。