プログラミング、ガジェット、趣味ネタを配信するブログ

C++ プログラミング

【C++】autoは処理負荷が重い?について調査

投稿日:

autoを使用すると重い?

C++はautoを使用すると、実行速度が重くなると風のうわさで聞いたので、実際に確認してみました。

autoとは?

C++11 から導入されて、変数宣言時に具体的な型名のかわりに auto キーワードを指定する事により、変数の型を初期化子から推論できる機能のことを言います。

検証

CompilerExplorerを使用して、アセンブリのコードに違いが出るのかを確認しました。
コードは同一の為、速度的には同じ実行速度になるかと思います。

この結果により、速度が遅いというのはおそらくコンパイル時間が遅くなるのかと思います。
理由は型推論を捜査処理を行う必要があるからかと思います。
このあたりの検証方法はパッと思いつかないため、思いついて検証ができそうならまた記事にまとめようと思います。

参考URL

https://cpprefjp.github.io/lang/cpp11/auto.html

http://yohshiy.blog.fc2.com/blog-entry-334.html

-C++, プログラミング

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

VBAの標準モジュールって何?

標準モジュールは、一般的なコードを格納するために使用される機能とのこと。関数やプロシージャ(SubやFunction)を定義して、どこからでも呼び出せるようになります。 特徴: プロジェクト内の全ての …

no image

【C#】WPFのAvalonDockで起動時にDocumentWindowを表示させる手順について

【前提条件】 AvalonDockUtilのライブラリを使用しています。 ViewModelクラスをWorkspaceBaseで継承します。 WorkspaceBase::NewDocument関数を …

no image

【WPF】WPF 型’UserControl’はダイレクトコンテンツをサポートしていません。

WPFプロジェクトを作成して、UserControlを作成した時に 「WPF 型’UserControl’はダイレクトコンテンツをサポートしていません。」 といったエラーが表示 …

no image

C++ メモリ領域に関して

プログラムのメモリ領域には、下記の4つがあるようです。 プログラム作成やデバッグの際に気を付けておくことで問題等を事前に防ぐことが出来ると思うので覚えておきましょう。 ヒープメモリ newやmallc …

「Tortoise Git」のクローン(チェックアウト)でGithubプロジェクトの作業フォルダを作成する方法

「Git」のGUIクライアントツール「TortoiseGit」をインストールする方法 で「Tortoise Git」のインストール設定を行いましたので、今回はGithubで作成したプロジェクトの作業フ …

スポンサー 人気記事 最近の投稿