アカウント名:
パスワード:
プログラミング言語を変える前に, なぜ遅いのかをはっきりさせないと駄目なんじゃないでしょうか.
データマイニングだと多量のデータを取り扱うことになるでしょうから, アルゴリズムの問題で計算量が増えている可能性もあります. また on memoryで取り扱えない規模のデータ量であれば, IOがネックになっていてCPUが遊んでいるとか, あるいはIOに伴うシステムコール/バックエンドプロセスでCPU時間が消費されている可能性もあります.
ですから手順としては
ということになると思います.
場合によっては, 言語としてはVBAのままで, 何か適当なpluginと組み合わせたら所要の性能が得られちゃったなんてこともあり得るかも.
"VBA profiler" で検索すればフリーも含めていくつもプロファイラアドオンが見つかりますが、なんだかこの人の場合は要所に
Debug.Print "hoge: " & Time
をはさんでログを見るだけでも十分そうな気がします("hoge"は実際には場所によって"データ準備"とか"並べ替え開始"とかで)。
プログラミング,ソフトウェア工学が目的の研究なら,計算量とか計算機資源の利用率は気にするべきだけど統計とかデータ分析が目的の研究なら,実装なんてどうでもいい,結果が出るまで待てば済む話だ,と割り切ることも大事だと思います
割り切れるかどうかは分野にもよるとしか言えません。天文学や気象学なんかは膨大なデータを処理する必要があるので、効率を考えないと数年単位で結果が得られる時間が違ってきます。さすがにそこまで違ってくると結果が出るまで待てば済む話だとはいきません。そこまで規模が大きくないとしても気軽にパラメータを変えて計算し直せるならば結果におおいに作用します。なので待てばいいと割り切れる分野というのは実はそんなに多くないんじゃないかと思います。折角計算量などの理論があるのですから利用しない手はありません。
いや、だから、本家のもとの相談人は、VBAじゃ遅すぎると言ってんじゃん。
なぜ遅いのか
VBAだから。は最大の理由のひとつだと思います。まず言語を変えようってのは適切な判断かと。自分ならそうしますし、多少プログラムを書ける人間ならまず第一に考えることだと思います。そこからさらに移行先が必要になるとしても、急がば回れとなる目が強いと直感します。
VBAをベースにしつつ部分対処していく道もあるとは思いますが、ぶっちゃけもっとマシな環境を選んだほうが、今後の発展性を望めると思います。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson
まず最初にやること (スコア:2)
プログラミング言語を変える前に, なぜ遅いのかをはっきりさせないと駄目なんじゃないでしょうか.
データマイニングだと多量のデータを取り扱うことになるでしょうから, アルゴリズムの問題で計算量が増えている可能性もあります. また on memoryで取り扱えない規模のデータ量であれば, IOがネックになっていてCPUが遊んでいるとか, あるいはIOに伴うシステムコール/バックエンドプロセスでCPU時間が消費されている可能性もあります.
ですから手順としては
ということになると思います.
場合によっては, 言語としてはVBAのままで, 何か適当なpluginと組み合わせたら所要の性能が得られちゃったなんてこともあり得るかも.
Re:まず最初にやること (スコア:1)
原因を探すために役立つツールってExcel VBAだと何があるんでしょう
プロファイラとかあったりするのかしら?
原因を探すのも手間だと思うので、「良く使われている言語」をとりあえず使えば良いと思うのだけれど
Re:まず最初にやること (スコア:2)
"VBA profiler" で検索すればフリーも含めていくつもプロファイラアドオンが見つかりますが、なんだかこの人の場合は要所に
Debug.Print "hoge: " & Time
をはさんでログを見るだけでも十分そうな気がします("hoge"は実際には場所によって"データ準備"とか"並べ替え開始"とかで)。
Re: (スコア:0)
プログラミング,ソフトウェア工学が目的の研究なら,計算量とか計算機資源の利用率は気にするべきだけど
統計とかデータ分析が目的の研究なら,実装なんてどうでもいい,結果が出るまで待てば済む話だ,と割り切ることも大事だと思います
Re: (スコア:0)
割り切れるかどうかは分野にもよるとしか言えません。
天文学や気象学なんかは膨大なデータを処理する必要があるので、
効率を考えないと数年単位で結果が得られる時間が違ってきます。
さすがにそこまで違ってくると結果が出るまで待てば済む話だとはいきません。
そこまで規模が大きくないとしても気軽にパラメータを変えて計算し直せるならば結果におおいに作用します。
なので待てばいいと割り切れる分野というのは実はそんなに多くないんじゃないかと思います。
折角計算量などの理論があるのですから利用しない手はありません。
Re: (スコア:0)
いや、だから、本家のもとの相談人は、VBAじゃ遅すぎると言ってんじゃん。
Re: (スコア:0)
なぜ遅いのか
VBAだから。は最大の理由のひとつだと思います。まず言語を変えようってのは適切な判断かと。
自分ならそうしますし、多少プログラムを書ける人間ならまず第一に考えることだと思います。
そこからさらに移行先が必要になるとしても、急がば回れとなる目が強いと直感します。
VBAをベースにしつつ部分対処していく道もあるとは思いますが、
ぶっちゃけもっとマシな環境を選んだほうが、今後の発展性を望めると思います。