JPWO2008107936A1 - ソフトウェア最適化装置、および最適化方法 - Google Patents

ソフトウェア最適化装置、および最適化方法

Info

Publication number
JPWO2008107936A1
JPWO2008107936A1 JP2009502351A JP2009502351A JPWO2008107936A1 JP WO2008107936 A1 JPWO2008107936 A1 JP WO2008107936A1 JP 2009502351 A JP2009502351 A JP 2009502351A JP 2009502351 A JP2009502351 A JP 2009502351A JP WO2008107936 A1 JPWO2008107936 A1 JP WO2008107936A1
Authority
JP
Japan
Prior art keywords
system call
program source
performance
extracted
call
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009502351A
Other languages
English (en)
Other versions
JP4968325B2 (ja
Inventor
正臣 寺西
正臣 寺西
鈴木 健二
健二 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Publication of JPWO2008107936A1 publication Critical patent/JPWO2008107936A1/ja
Application granted granted Critical
Publication of JP4968325B2 publication Critical patent/JP4968325B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4432Reducing the energy consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

例えばマルチタスクOSを用いる組み込みシステムで用いられるソフトウェアを、ターゲットにロードすることなく、最適化するとともに、プログラムソースの自動最適化を可能とするために、プログラムソース内のシステムコールを抽出する手段2と、システムコールの性能データを記憶する手段3と、手段3に性能データが記憶されているシステムコールのうちで、手段2によって抽出されたシステムコールと機能が類似し、かつ性能の良いシステムコールを検出する手段4と、プログラム内のシステムコールを手段4によって検出されたシステムコールに置換する手段5とを備える。

Description

本発明はソフトウェアの最適化方式に係り、さらに詳しくは例えばマルチタスク・オペレーティング・システムを利用した組み込みシステムにおいて使用されるソフトウェアに対して、消費電力削減や処理性能向上を図るためのソフトウェア最適化装置、および最適化方法に関する。
マルチタスク・オペレーティング・システム(OS)上で動くアプリケーションソフトウェアや、マルチタスクOSを利用した組み込みシステムで用いられるソフトウェアに対する省電力最適化作業では、プログラムソースをコンパイル・リンクした結果の実行可能オブジェクトをターゲットとなるハードウェア上にロードし、実際にソフトウェアとハードウェアを動かし、測定される電力量を削減するための作業が行われる。また組み込みシステムの処理性能の最適化作業についても同様の作業が行われている。このためオペレータや組み込みシステムの設計者がソフトウェアの最適化を行うためには、プログラムを作成し、それをデバッグし、ターゲットにロードして消費電力や処理性能を測定する必要があり、手間と時間のかかる作業が必要であった。
このような計算機などの消費電力を最適化するための従来技術としての特許文献1では、グリッドコンピューティングシステムのような分散コンピューティングシステムにおいて、部分計算に要する電力や部分計算の重要性などの情報に基づいて、部分計算を実行すべき計算処理装置を選択することによって、電力消費量を削減することができる分散コンピューティングシステムが開示されている。
しかしながらこの特許文献1は、分散コンピューティングシステムを構成する複数の計算処理装置の部分計算によって消費される電力量を最適化するものであり、例えばメモリへのアクセス回数は無視されている。例えば組み込みシステムでは、内蔵メモリへのアクセス回数も消費電力の指標として重要であるが、特許文献1ではメモリへのアクセス回数を考慮した最適化を行うことができないという問題点があった。
また特許文献1では、省電力の指標を明らかにするためにプログラムソースをコンパイルし、リンクする必要があるが、組み込みシステム向けのアプリケーションソフトウェアにおいては、プログラムソースのコンパイルとリンクを行うだけでも膨大な時間がかかるものが多く、特許文献1の技術を組み込みシステムに適用することは困難であるという問題点があった。
次に同様に電気機器の消費電力削減に関する従来技術としての特許文献2では、例えば電気機器が省電力モードへの切り替えを行っている最中に、通常モードに直ちに復帰させる必要が生じた場合などに、省電力モードで動作する時間が短く、省電力モードに切り替えることが逆に電力消費量を増大させるという問題点を解決するために、動作モードを切り替えるための移行処理、および復帰処理に伴う電力消費量を考慮した適切なモード切り替えを実現することができる技術が開示されている。
しかしながら例えば組み込みシステムでは、プログラムソース内に記述されたシステムコールに対応して、電力消費量、メモリアクセス回数、処理時間などが消費電力や処理性能の指標として重要になり、動作モード切り替えによる消費電力削減の技術としての特許文献2の技術を適用することはできないという問題点があった。
特開2005−63066号公報 「分散コンピューティングシステム」 特開2006−72991号公報 「省電力処理装置、省電力処理方法、及び省電力処理プログラム」
本発明の目的は、上述の問題点に鑑み、例えばマルチタスクOSを用いる組み込みシステムなどの電力消費量の削減、および処理性能向上のために、プログラムソースに記述されているシステムコール毎に電力消費量、メモリアクセス回数、処理時間を最適化することによって、ターゲットにソフトウェアをロードすることなく、ソフトウェアの最適化を実現可能とすることである。また組み込みシステムの設計者などの手間をさらに削減させるために、プログラムソースの変更の自動化をも可能とすることである。
本発明のソフトウェア最適化装置は、少なくとも性能データ記憶手段、システムコール抽出手段、類似システムコール検出手段、およびプログラムソース最適化手段を備える。
性能データ記憶手段は、複数のシステムコールに対して各システムコールの性能を示すデータを記憶するものであり、システムコール抽出手段はプログラムソース内に記述されているシステムコールを抽出するものである。
類似システムコール検出手段は、性能データ記憶手段に性能を示すデータが記憶されているシステムコールのうちで、システムコール抽出手段によって抽出されたシステムコールと類似した機能を有し、抽出されたシステムコールより性能のよいシステムコールを検出するものであり、プログラムソース最適化手段はプログラムソース内に記述されているシステムコールを類似システムコール検出手段によって検出されたシステムコールによって置換し、その置換結果として得られるプログラムソースを最適化されたプログラムソースとして出力するものである。
本発明の実施の形態においては、システムコールの性能を示すデータは、例えばシステムコールの消費電力量、またはメモリアクセス回数、または処理時間であり、性能データが消費電力量である場合には類似システムコール検出手段によってより消費電力量の少ないシステムコールが検出され、システムコールのメモリアクセス回数であればよりメモリアクセス回数の少ないシステムコールが検出され、処理時間であればより処理時間の短いシステムコールが検出される。また本発明のソフトウェア最適化方法においては、ソフトウェア最適化装置の動作と同様の方法が用いられる。
以上のように本発明によれば、プログラムソース内に記述されているシステムコールが、同様の機能を持ち、より性能の良いシステムコールに置換され、置換結果として得られるプログラムソースが最適化されたプログラムソースとして出力される。
本発明によれば、最適化対象としてのソフトウェアを実際にターゲットにロードしたり、ソースコードをコンパイル、あるいはリンクする手間が不必要となり、プログラムソースの変更まで自動的に可能とすることによって、例えば組み込みシステムに用いられるソフトウェアの最適化作業の手間を大幅に削減し、例えば組み込みシステムの設計作業の大幅な効率化に寄与するところが大きい。
本発明のソフトウェア最適化装置の原理構成ブロック図である。 本実施形態におけるソフトウェア最適化装置の構成ブロック図である。 ソフトウェア最適化方式の第1の実施例における基本処理フローチャートである。 第1の実施例におけるソフトウェア最適化処理の詳細フローチャートである。 第1の実施例におけるデータテーブルのデータ格納例の説明図である。 プログラムソースからのシステムコール抽出例の説明図である。 システムコールの置換によるパラメータの影響の例の説明図である。 プログラムソース最適化処理方法(その1)の説明図である。 プログラムソース最適化処理方法(その2)の説明図である。 ソフトウェア最適化方式の第2の実施例における基本処理フローチャートである。 第2の実施例におけるソフトウェア最適化処理の詳細フローチャートである。 第2の実施例におけるデータテーブルのデータ格納例の説明図である。 ソフトウェア最適化方式の第3の実施例における基本処理フローチャートである。 第3の実施例におけるソフトウェア最適化処理の詳細フローチャートである。 第3の実施例におけるデータテーブルのデータ格納例の説明図である。
図1は、本発明のソフトウェア最適化装置の原理構成ブロック図である。同図においてソフトウェア最適化装置1は、システムコール抽出手段2、性能データ記憶手段3、類似システムコール検出手段4、およびプログラムソース最適化手段5を備える。
システムコール抽出手段2は、最適化の対象となるソフトウェアとしてのプログラムソース内に記述されているシステムコールを抽出するものであり、性能データ記憶手段3は複数のシステムコールに対応して、各システムコールの性能を示すデータを記憶するものである。
類似システムコール検出手段4は、性能データ記憶手段3に性能を示すデータが記憶されたシステムコールのうちで、システムコール抽出手段2によって抽出されたシステムコールと類似した機能を有し、抽出されたシステムコールより性能の良いシステムコールを検出するものであり、プログラムソース最適化手段5はシステムコール抽出手段2によって抽出されたシステムコールを、類似システムコール検出手段4によって検出されたシステムコールによって置換し、その置換結果として得られるプログラムソースを最適化されたプログラムソースとして出力するものである。
本実施形態においては、システムコール抽出手段2が、プログラムソース内に記述されているシステムコールに加えて、そのシステムコールにおけるパラメータを抽出するとともに、抽出されたパラメータに対応する変数が類似システムコール検出手段4によって検出されたシステムコール内で使用されている時、ソフトウェア最適化装置1がそのパラメータと変数との使用状況を分析し、プログラムソース内に記述されているシステムコールと類似システムコール検出手段4によって検出されたシステムコールとの置換が可能か否かを判定する置換可能性判定手段をさらに備え、置換が可能であると判定された時、プログラムソース最適化手段5がシステムコールの置換を行って、最適化されたプログラムソースを出力することもできる。
本実施形態においては、システムコールの性能は、システムコールの消費電力量であることも、またシステムコールのメモリアクセス回数であることも、あるいはシステムコールの処理時間であることもできる。
図2は、本実施形態におけるソフトウェア最適化装置の構成ブロック図である。同図において最適化処理部10は、本実施形態におけるソフトウェアの最適化を行うものであり、例えば1つのパーソナルコンピュータと考えることもできる。
最適化処理部10に対しては、入力装置11、メモリ12、およびモニタ13が接続され、最適化処理部10は、リアル・タイム・オペレーティング。・システム(RTOS)15を用いて、入力されるプログラムソース16に対する最適化処理を実行し、その処理後のプログラムソースを最適化後のプログラムソース17として出力する。ここで例えば組み込みシステムにおいてはユーザが、例えばあるボタンを押した時点でオペレーティング・システムが動き出すことが必要であり、そのためにRTOS15が用いられる。
図3は、ソフトウェア最適化方式の第1の実施例における基本処理フローチャートである。同図において、ステップS1で最適化対象のプログラムソースが最適化装置に入力され、ステップS2でそのプログラムソース内に記述されているシステムコール、およびパラメータが抽出され、ステップS3でシステムコール毎の消費電力量が格納されたデータテーブルを用いて、最適化に使用可能なシステムコールが検出され、ステップS4で手動、または自動で最適化作業が行われ、最適化されたプログラムソースが出力される。なおここで最適化作業として実際には、プログラムソース内に記述されているシステムコールが、ステップS3で検出された最適化に使用可能なシステムコールに置換されて、最適化されたプログラムソースが出力される。すなわちこの第1の実施例においては、システムコールの性能はシステムコールの消費電力量を示すデータである。
図4は、第1の実施例におけるソフトウェア最適化処理の詳細フローチャートである。同図において処理が開始されると、まずステップS10でプログラムソースからシステムコールとパラメータが抽出され、ステップS11で例えば図2のメモリ12に格納されているデータテーブル、すなわちシステムコール毎の消費電力量を示すデータテーブルを用いて、プログラムソースから抽出されたシステムコールと類似した機能を持ち、かつ消費電力量が少ないシステムコールがあるか否かが判定され、無い場合には直ちに処理を終了する。
図5は、第1の実施例におけるデータテーブルの格納内容の例である。同図において実質的に同一の機能、例えば機能Aを持つシステムコールとしてはシステムコールA1とA2があり、システムコールA1の消費電力量を100とするとシステムコールA2の消費電力量は50であることを示す性能データが格納されている。
図4のステップS11で消費電力量が少ないシステムコールがあると判定されると、ステップS12でプログラムソースから抽出されたパラメータに対応する変数やポインタ変数が、消費電力量が少ないシステムコールにおいて使用されているか否かが判定される。
使用されている場合には、ステップS13でプログラムソースの最適化のためにシステムコールを置換してもその動作に影響がないパラメータであるか否かが判定され、影響がある場合にはシステムコールの置換は困難であり、直ちに処理を終了する。
図6は、プログラムソースから抽出されるシステムコールとパラメータの具体例である。同図において左側はプログラムソースを示し、右側はこのプログラムソースから抽出されたシステムコールとそのパラメータを示している。すなわちシステムコールとしてはタイムアウト付きのスリープタスク(tslp_tsk)、およびタスクの終了を示すエクジットタスク(ext_tsk)が抽出され、それぞれの抽出回数が1回と2回であり、またシステムコールtslp_tskのパラメータが“−1”であることが示されている。
図5の左側のプログラムソースの中でtslp_tsk(−1)のシステムコールの引数の“−1”は図5の右側で説明したパラメータであるが、このパラメータ“−1”はタイムアウト付きのスリープのシステムコールであるにもかかわらず無限にスリープするという意味を持っている。この引数が“−1”でなく、例えば“10”とか“100”という数値であれば、その数値に対応する時間でスリープ動作がタイムアウトすることになるが、無限にスリープするという意味では、同様の意味を持つslp_tsk()のシステムコールで置換することが可能となる。このシステムコールへの置換を行うことによりタイムアウト監視などの処理が不必要になるため、高速化、すなわち消費電力低減が実現される。
図5のデータテーブルにおいて、例えば機能Aがスリープ機能であり、システムコールA1がtslp_tsk()のシステムコールであり、システムコールA2がslp_tsk()のシステムコールであるものとすれば、システムコールの置換によって消費電力量を半分とすることが可能となる。
図7は、ステップS13で判定されるパラメータの影響の説明図である。同図においてタスク1側のウェイト・フラグ(wai_flg)のシステムコールは、フラグのセットを待つシステムコールであり、タスク2側のセット・フラグ(set_flg)はフラグをセットするシステムコールである。この2つのシステムコールはタスク1とタスク2との動作の同期をとるためだけに使用されており、セットされるべきフラグを示すフラグIDがFLG1であることが示されている。このFLG1がパラメータに相当する変数であるが、このフラグが、例えばさらに他のタスクの動作との同期をとるためにも使用されているとすると、システムコールの置換に当たってこのフラグを省略することはできないが、ここではタスク1とタスク2との間での同期をとるだけに使用されているために、タスク1側のwai_flgのシステムコールをslp_tsk()のシステムコールで、またタスク2側のset_flgのシステムコールをスリープ状態から起きることを意味するウェイク・アップ・タスク、すなわちwup_tsk()に置換して、結果的に変数“FLG1”を省略してもプログラムの動作には影響しないことになる。
図4のステップS12でパラメータに対応する変数やポインタ変数が使用されていない場合、あるいはステップS13で、使用されていてもシステムコールの置換によってそのパラメータがプログラムソースの動作に影響しないと判定されたパラメータである場合には、ステップS14で最適化可能なシステムコールの一覧が表示される。ここでシステムコールの一覧は、ステップS10でプログラムソースから抽出されたシステムコールが複数であり、それぞれのシステムコールと置換可能であり、最適化に使用可能なシステムコールの一覧である。例えば同一の機能を持つシステムコールの中で消費電力量が少ないシステムコールが複数個存在する場合にも、最適化に使用可能なシステムコールは予め1つのシステムコールに決定されており、プログラムソースから抽出されたシステムコールと1対1の形式で、そのシステムコールと置換可能なシステムコールの一覧が表示されるものとする。
その後ステップS15でプログラムソースの最適化を自動的に行うか否かが判定され、自動的に行わず、例えば組み込みシステムの設計者が手動で最適化を行う場合には、最適化処理部としての処理を終了する。自動的に最適化する場合には、ステップS16でプログラムソースの最適化が自動的に行われ処理を終了する。設計者が手動で最適化を行う場合には、ステップS14で表示されるシステムコールの一覧を利用することができる。
なお本発明の特許請求の範囲の請求項1における性能データ記憶手段は図2のメモリ12に、請求項4における表示手段はモニタ13に相当する。請求項1〜3におけるシステムコール抽出手段、類似システムコール検出手段、プログラムソース最適化手段、および置換可能性判定手段はすべて図2の最適化処理部10に相当するが、システムコール抽出手段は例えば図4のステップS10、類似システムコール検出手段はステップS11、プログラムソース最適化手段はステップS16、置換可能性判定手段はステップS13の処理を行うものである。
プログラムソースの自動的な最適化方法としては、例えばエディタを用いる方法と、コンパイラを用いる方法がある。図8は、エディタを用いたプログラムソース最適化処理の詳細フローチャートである。同図において処理が開始されると、ステップS20でプログラムソースの中で特定の文字列を検索する処理が行われる。前述の例ではこの特定の文字列はtslp_tsk()であり、ステップS21でその文字列が検出されたか否かが判定され、検出された場合にはステップS22でその特定の文字列が、例えばslp_tsk()で置換された後に、また検出されなかった場合にはステップS23でプログラムソースのファイルの最終行に達したか否かが判定され、達していない場合にはステップS20以降の処理が繰り返され、ファイルの最終行に達したと判定されると処理を終了する。
図9は、コンパイラを用いた場合に作成されるファイルの例である。同図においては、システムコールtslp_tsk(tmout)のシステムコールがslp_tsk()というシステムコールにデファインされる、すなわち置換されるべきことが示されている。またwai_flgのシステムコールがslp_tsk()のシステムコールにデファインされることも示されている。
図10は、ソフトウェア最適化方式の第2の実施例の基本処理フローチャートである。同図を第1の実施例における図3と比較すると、ステップS31、S32、およびS34の処理は図3のステップS1、S2、およびS4と同様であるが、ステップS33で、メモリアクセス回数がシステムコール毎に格納されたデータテーブルを用いて、最適化に使用可能なシステムコールが検出される点が異なっている。すなわちこの第2の実施例では、メモリアクセス回数を減らすことによって、プログラムソースの最適化を行うことになるが、組み込みシステムでは内臓メモリへのアクセス回数も重要な消費電力指標であり、メモリアクセス回数を減少させることによって、消費電力を削減させることが可能となる。
図11は、第2の実施例におけるソフトウェア最適化処理の詳細フローチャートである。同図を第1の実施例における図4と比較すると、図4のステップS11に対応するステップS41で、プログラムソースから抽出されたシステムコールと類似の機能を持ち、かつメモリアクセス回数が少ないシステムコールの有無が判定される点が基本的に異なっている。
図12は、図11の処理フローチャートにおいてステップS41の判定のために用いられるデータテーブルの格納内容の例である。それぞれの機能を持つ、一般に複数のシステムコール毎にメモリアクセス回数がデータテーブルに格納されている。
図13は、ソフトウェア最適化方式の第3の実施例の基本処理フローチャートである。同図を第1の実施例における図3と比較すると、図3のステップS3に相当するステップS53でシステムコール毎の処理性能のデータ、例えば処理時間のデータが格納されたデータテーブルを用いて、最適化に使用可能なシステムコールが検出される点が基本的に異なっている。
図14は、第3の実施例におけるソフトウェア最適化処理の詳細フローチャートである。同図を第1の実施例における図4と比較すると、図4のステップS11に相当するステップS61で、プログラムソースから抽出されたシステムコールと類似した機能を持ち、かつ処理時間が短いシステムコールの有無が判定される点だけが基本的に異なっている。
図15は、図14のステップS61の判定に用いられるデータテーブルの格納内容の例である。一般に同一の機能をもつ複数のシステムコール毎に、そのシステムコールの処理に必要な処理時間が格納されている。
以上において本発明の実施形態を詳細に説明したが、本発明によればシステムの省電力と処理性能向上のためのソフトウェア最適化を、例えばシステム設計者の技術レベルに依存することなく実現することが可能となる。また、最適化に使用可能なシステムコールが表示されるため、最適化作業効率を大幅に向上させることができる。

Claims (8)

  1. 複数のシステムコールに対応して、各システムコールの性能を示すデータを記憶する性能データ記憶手段と、
    プログラムソース内に記述されているシステムコールを抽出するシステムコール抽出手段と、
    前記性能データ記憶手段に性能を示すデータが記憶されているシステムコールのうちで、前記システムコール抽出手段によって抽出されたシステムコールと類似した機能を有し、該抽出されたシステムコールより性能の良いシステムコールを検出する類似システムコール検出手段とを備えることを特徴とするソフトウェア最適化装置。
  2. 前記プログラムソース内に記述されているシステムコールを、前記類似システムコール検出手段によって検出されたシステムコールによって置換し、該置換結果として得られるプログラムソースを最適化されたプログラムソースとして出力するプログラムソース最適化手段をさらに備えることを特徴とする請求項1記載のソフトウェア最適化装置。
  3. 前記システムコール抽出手段が、前記プログラムソース内に記述されているシステムコールに加えて、該システムコールのパラメータを抽出するとともに、
    前記ソフトウェア最適化装置が、該抽出されたパラメータに対応する変数が前記類似システムコール検出手段によって検出されたシステムコール内で使用されている時、該パラメータと該変数との使用状況を分析し、前記抽出されたシステムコールの、前記検出されたシステムコールによる置換が可能か否かを判定する置換可能性判定手段をさらに備え、
    該置換が可能であると判定された時、前記プログラムソース最適化手段がシステムコールの置換を行って、前記最適化されたプログラムソースを出力することを特徴とする請求項2記載のソフトウェア最適化装置。
  4. 前記類似システムコール検出手段が複数のシステムコールを検出した時、該システムコールの一覧を表示する表示手段をさらに備えることを特徴とする請求項1記載のソフトウェア最適化装置。
  5. 前記性能データ記憶手段に記憶されているシステムコールの性能を示すデータが該システムコールの消費電力量であり、
    前記類似システムコール検出手段が、前記システムコール抽出手段によって抽出されたシステムコールより消費電力量の少ないシステムコールを検出することを特徴とする請求項1記載のソフトウェア最適化装置。
  6. 前記性能データ記憶手段に記憶されているシステムコールの性能が該システムコールのメモリアクセス回数であり、
    前記類似システムコール検出手段が、前記システムコール抽出手段によって抽出されたシステムコールよりメモリアクセス回数の少ないシステムコールを検出することを特徴とする請求項1記載のソフトウェア最適化装置。
  7. 前記性能データ記憶手段に記憶されているシステムコールの性能が該システムコールの処理時間であり、
    前記類似システムコール検出手段が、前記システムコール抽出手段によって抽出されたシステムコールより処理時間の短いシステムコールを検出することを特徴とする請求項1記載のソフトウェア最適化装置。
  8. プログラムソース内に記述されているシステムコールを抽出し、
    複数のシステムコールに対応して各システムコールの性能を示すデータを記憶するメモリの記憶内容を用いて、該メモリに性能データが記憶されているシステムコールのうちで、前記プログラムソースから抽出されたシステムコールと類似した機能を有し、該抽出されたシステムコールより性能の良いシステムコールを検出し、
    前記プログラムソース内に記述されているシステムコールを、該検出されたシステムコールによって置換し、該置換結果として得られるプログラムソースを最適化されたプログラムソースとして出力することを特徴とするソフトウェア最適化方法。
JP2009502351A 2007-03-08 2007-03-08 ソフトウェア最適化装置、および最適化方法 Expired - Fee Related JP4968325B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/000183 WO2008107936A1 (ja) 2007-03-08 2007-03-08 ソフトウェア最適化装置、および最適化方法

Publications (2)

Publication Number Publication Date
JPWO2008107936A1 true JPWO2008107936A1 (ja) 2010-06-03
JP4968325B2 JP4968325B2 (ja) 2012-07-04

Family

ID=39737842

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009502351A Expired - Fee Related JP4968325B2 (ja) 2007-03-08 2007-03-08 ソフトウェア最適化装置、および最適化方法

Country Status (3)

Country Link
US (1) US8516441B2 (ja)
JP (1) JP4968325B2 (ja)
WO (1) WO2008107936A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8327325B2 (en) * 2009-01-14 2012-12-04 International Business Machines Corporation Programmable framework for automatic tuning of software applications
US8386810B2 (en) * 2009-04-08 2013-02-26 Microsoft Corporation Determination of software module power consumption by analyzing total system power consumption of operational hardware events at plural times
US8732487B2 (en) 2010-06-30 2014-05-20 Microsoft Corporation Predictive computing device power management
US9176841B2 (en) 2011-12-28 2015-11-03 Microsoft Technology Licensing, Llc Estimating application energy usage in a target device
US8893088B2 (en) 2013-04-02 2014-11-18 Apple Inc. Dynamic program evaluation for system adaptation

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001195279A (ja) * 1999-10-25 2001-07-19 Matsushita Electric Works Ltd ソフトウェア開発支援システム
US6718543B2 (en) * 1999-11-08 2004-04-06 Hewlett-Packard Development Company, L.P. Method and apparatus for optimization of the performance of an application program in a computer system while preserving the system behavior
US7185330B1 (en) * 2001-01-05 2007-02-27 Xilinx, Inc. Code optimization method and system
DE10216602A1 (de) * 2002-04-15 2003-10-30 Giesecke & Devrient Gmbh Optimierung von compilergeneriertem Programmcode
US7367022B2 (en) * 2002-09-05 2008-04-29 Intel Corporation Methods and apparatus for optimizing the operating speed and size of a computer program
JP3896352B2 (ja) 2003-08-08 2007-03-22 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散コンピューティングシステム
JP2005228183A (ja) * 2004-02-16 2005-08-25 Hitachi Ltd プログラム実行方法、および、プログラム実行のための計算機システム
JP4749793B2 (ja) 2004-08-05 2011-08-17 パナソニック株式会社 省電力処理装置、省電力処理方法、及び省電力処理プログラム

Also Published As

Publication number Publication date
US20090319988A1 (en) 2009-12-24
US8516441B2 (en) 2013-08-20
JP4968325B2 (ja) 2012-07-04
WO2008107936A1 (ja) 2008-09-12

Similar Documents

Publication Publication Date Title
US7739530B2 (en) Method and program for generating execution code for performing parallel processing
KR101769227B1 (ko) 시스템 적응화를 위한 동적 프로그램 평가
US9229745B2 (en) Identifying load-hit-store conflicts
CN109272109B (zh) 神经网络模型的指令调度方法及装置
CN110990019B (zh) 一种Java类分析方法、装置、存储介质及电子设备
WO2015143641A1 (en) Compilation of application into multiple instruction sets for a heterogeneous processor
JP4968325B2 (ja) ソフトウェア最適化装置、および最適化方法
US20140189708A1 (en) Terminal and method for executing application in same
CN105183592A (zh) 用于支持性能分析的方法和装置
KR20120036209A (ko) 컴퓨팅 시스템에서 부트 이미지의 크기를 최적화하는 부팅이미지 생성방법
US11768668B2 (en) Methods, apparatuses and computer program products for improving productivity for building applications
KR20150061203A (ko) 네이티브 빌드 기반의 임베디드 소프트웨어 개발 환경을 지원하기 위한 임베디드 소프트웨어 개발 도구 제공 방법 및 장치
CN101364178A (zh) Bios在电脑装置开机时的执行方法与管理方法
JP2004362216A (ja) コンパイラ装置、コンパイル方法、コンパイラプログラム、及び記録媒体
JP2017117451A (ja) バイナリ分析を用いたネイティブコード起動技術
CN107436839B (zh) 进程负载获取方法、电子终端及计算机可读存储介质
WO2021114757A1 (zh) 计算图的优化方法、装置、计算机设备和存储介质
JP2008186163A (ja) プログラムの評価プログラム、プログラムの評価装置、プログラムの評価方法
US9141414B2 (en) Preferred compilation
JP4870956B2 (ja) 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部
CN108153530B (zh) 字节码的优化方法、装置、存储介质、处理器及终端
KR101128251B1 (ko) 실행 프로그램의 장치별 절전모드 제어 장치 및 방법
CN115562962A (zh) 模型推理性能的分析方法、装置及电子设备
EP3134815B1 (en) Memory efficient thread-level speculation
CN115904928A (zh) 一种慢函数监控的插桩方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120306

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120319

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150413

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4968325

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees