• ベストアンサー

EXEとソースで動かすのとではEXEで動かす方が断然早い?

VisualBasic6でソースを動かすのと コンパイルしてEXE形式で動かすのでは、 多分EXEの方が早いと思うのですが、 全然スピードが違うと言うことはありえるのでしょうか? 例えば、処理完了まで2時間~3時間もスピードが変わることは あるのでしょうか?処理はデータベースを更新、参照したりするものです どなたか教えて下さい。 windows2000 vb6 sp5

  • GBSGBS
  • お礼率36% (370/1012)

質問者が選んだベストアンサー

  • ベストアンサー
  • nitscape
  • ベストアンサー率30% (275/909)
回答No.3

Visual BasicではなくVisual C++での結果ですが... ソースで動かす状態をデバッグ状態(Debug Build) コンパイルで動かす状態をデバッグなしでのコンパイル(Release Build) を用い、最適化されない単純処理を300万回繰り返すプログラムを作成して処理に必要な時間をプログラム上で計測しました。 結果はそれぞれ  36秒   2秒 でした。 これはあくまでVisual C++での結果ですがVisual Basicでも同じテストを行えば同じような結果になるはずです。 つまり処理は ソースで動かした方が遅くなります。 また処理完了まで2時間~3時間もスピードが変わることは あるのでしょうか?ということに関してですが...処理内容と全処理時間にもよるかと思います。上の例では34秒しか変わらなかったわけですし...

その他の回答 (2)

  • honiyon
  • ベストアンサー率37% (331/872)
回答No.2

こんにちは、honiyonです。   BASICは元々はインタプリタ言語です。   実行ファイルを作成してから実行するコンパイラ言語であれば、デバッグ機構が働く為若干の速度低下はありますが、「全く違う」という程の差は出ませんが、インタプリタ言語では逐次コンパイルしながら実行するので大差が発生する可能性があります。   じゃあVisualBasicはどうなんだ?ですが、BASICはインタプリタだけでどVisualBasicはインタプリタなんでしょうか?(^^;   そこで大きな差が出ます。   参考になれば幸いです(..   

  • karon24
  • ベストアンサー率40% (8/20)
回答No.1

ソースで動かしてブレークポイントで止めながら実行したりしないかぎり、 そこまで差が出ることは無いと思いますよ。 私も今データベースを使ったプログラムを作成していますが、 速度は全然変わらないです。

関連するQ&A

  • Cソースをexeにコンパイルする

    Cソースをexeにコンパイルする http://freenx.berlios.de/download.phpに置いてあるfreenx-X.Y.Z.tar.gzをWindows上で動作するexeにコンパイルしたいのですが、うまくできませんでした。使用しているOSはWindows XPです。 cygwinをインストールしてtar.gzを展開したフォルダまで行き、makeを実行しましたが、以下のようなエラーがでました。 http://pastebin.com/bfQtMFyW この方法でexeにできるのかどうかも分からないのですが、もし別の方法があるなら教えてください。お願いします。

  • exeファイルで実行できない

    VB6.0のexeファイルでのアプリ稼動ができません。プロジェクトファイルを開いて実行すれば稼動するのですが、生成したexeファイルを実行した場合は稼動しません。 いったいどういう原因なのでしょうか?リリースモードでコンパイル云々という話でしょうか? ただ他にもVBのアプリが存在するのですが、そちらはexeファイルの実行だけで問題なく稼動します。 OS Windows XP(SP1) 開発環境 VB6.0 (SP5) .NET Framework 1.0? 原因が分かる方、推測できる方いらっしゃったら、教えていただけないでしょうか?宜しくお願いします。

  • たくさんのVBPを一括コンパイルするには?(VB6)

    VisualBasic SP5 Windwos2000 で大量のEXEを一度に作りたいのですが何かよい方法はないでしょうか? VB4だとフリーソフトで一括コンパイルできるソフトをみかけた ような気がするのですが、VB6はないでしょうか? また、プロジェクトグループ?なるものでできるともきいたのですが うまくいかないこともあるそうです。

  • コンパクトなEXEファイルに組み込めるデータベース

    Visual stadio C# でソフトを開発しています。EXEファイルから他所を閲覧せずに使えるEXEファイルに組み込めるデータベースソフトを探しています。SQLiteは試してみましたが、EXEファイルからDLLを参照する様にできています。コンパイル時にDLLファイルごとコンパイルするとエラーが発生しました。完成時にEXEファイルが一個で済むようなデータベースはないでしょうか。回答のほどよろしくお願いします。

  • ソースコードのコンパイルについて

    ソースコードのコンパイルについて よくソースコードだけしか公開されていないソフトを見かけますが、これらはWindows, Mac, LinuxそれぞれでコンパイルすればそれらのOSで動くようになるのでしょうか?例えばCで書かれたソースコードをWindowsでコンパイルすればexeに自動的にコンパイルされ、MacでコンパイルすればMac用のバイナリに自動的にコンパイルされるのでしょうか? またMacにはLinuxのシェルがあったと思うのですが、MacでコンパイルしたものはLinuxで動きますか?またその逆はできるのでしょうか。

  • ソースのない実行プログラムについて

    ある実行プログラム(VBで作成、exe形式、ソースなし)があります。 プログラム(.exe)を起動することで画面上に入力画面が表示されます。 いくつかの必要項目を入力し、計算ボタンを押下し計算を流すことで.xlsに結果を出力することができます。 1ジョブの計算時間に数時間かかるのと件数が多いため、仕事帰りに複数のパソコンで処理し、1台のパソコンで複数件処理できないか?その方法を検討しています。   入力画面に必要項目を自動入力でき、1つのパソコンで複数件処理できる方法はないでしょうか?

  • exe書き込み時のエラーについて。

    コンパイルは問題なく終了すのですが、exeの書き込み中に 「このコンポーネントのライセンス情報が見つかりません。デザイン環境でこの機能を使う為のライセンスがありません。」のメッセージが表示されexeが作成できません。 VB5の時はこのようメッセージが表示される事があるみたいですが私の使ってる環境はVB6のSP5でこのような事例を調べたのですが見つかりませんでした。すいませんが分かる方がおられましたらお教え下さい。お願い致します。

  • Visual Basic6.0 でのFTP転送

    Windows NT Visual Basic6.0(SP5)で開発しております。 インターネットトランスファーコントロール(Inet)を使い、EXEファイルを作成し、FTPサーバーに対して、"PUT"処理(InetのExecuteメソッドで)を実行したところ、下記アプリケーションエラーのメッセージが出ます。 「"0x7020e8fa"の命令が"0x7020e8fa"のメモリを参照しました。メモリが"read"になることはできませんでした。」 その後、このWindowのOKボタンをクリックし、落ちます。 但し、同じソースをWindows2000でコンパイルたEXEファイルでWindows2000上で走らせると、正常に動きます。 この正常に動くEXEファイルをWindows NT上で動かすとやはり同じエラーで落ちます。MicrosoftのHPを見ても、VB6.0からは、この問題は解決されているとしか載っておりません。環境設定や、DLL等のVersionの違いからくるのでしょうか?因みに、エラー時にVC++でデバッグすると、VB6.exeがおかしいとか出ておるのですが。

  • Rubyのexe化・・・

    Rubyスクリプトはexeにコンパイルできることを調べていたら windows以外にもMacやLinuxで利用できるものにコンパイルできるって 情報をみたと思うんですよ、そのときqtについても調べていたので 間違いかもしれませんがww 同じソースで複数のOSに対応したものが作れるって、あったような気がします もし、そういう情報があったら、回答お願いします

    • 締切済み
    • CGI
  • VBを起動せずにEXEファイルを作成する方法

    表題のとおりです。 VBで作成したソースファイル等をVBを起動せずに、EXEファイルを 作成する方法を探しています。 と、言うのも、複数(VB以外も含む)のプロジェクトファイルを一度に コンパイルし、配布できる環境を作成するようにしたいのです。 要は makeファイル 等で作成出来ればと考えています。 何か、VBでEXEファイルを作成できるコマンドライン(C2.EXE等???)が あれば、お教えいただけませんでしょうか? よろしくお願い致します。