コンピューティング環境に関する方法であって、ブロックサイズに関して、キャッシュを使用することがより効率的であるか、又はストレージを直接的に使用することがより効率的であるかを判断するステップと、前記ブロックサイズを有するデータストリームに応答して、前記ブロックサイズに関して、前記判断されたより効率的な方法を使用するステップとを含む方法。前記判断するステップが、一定のブロックサイズに関して、キャッシュを使用することがより効率的であるか、又はストレージを直接的に使用することがより効率的であるかを測定するステップと、それぞれの測定されたブロックサイズに関して、前記のより効率的な方法を選択するステップと、前記ブロックサイズを前記選択された方法と関連付けるステップとを更に含む、請求項1に記載の方法。前記判断するステップが、前記コンピューティング環境のシステムパラメータを取得するステップであって、前記取得されたシステムパラメータがメモリ使用の前記効率に影響を及ぼす、取得するステップと、前記取得されたシステムパラメータを使用することによって、一定のブロックサイズに関して、キャッシュを使用することがより効率的であるか、又はストレージを直接的に使用することがより効率的であるかを計算するステップと、それぞれの計算されたブロックサイズに関して、前記のより効率的な方法を選択するステップと、前記ブロックサイズを前記選択された方法と関連付けるステップとを更に含む、請求項1に記載の方法。前記コンピューティング環境のシステムパラメータを取得するステップであって、前記取得されたシステムパラメータがメモリ使用の前記効率性に影響を与える、取得するステップと、前記取得されたシステムパラメータを使用することによって、前記一定のブロックサイズに関して、キャッシュを使用すること及びストレージを直接的に使用することの効率性を計算するステップと、前記コンピューティング環境内のハードウェアを確認するために、対応する測定結果を計算結果と比較するステップとを更に含む、請求項2に記載の方法。データストリームのブロックサイズに関する情報を受信するステップと、前記データストリームの前記ブロックサイズがどの測定されたブロックサイズに対応するかを判断するステップと、前記データストリームに関して、前記関連付けられた方法を使用するステップとを更に含む、請求項2、3、又は4に記載の方法。それによって前記選択が実行された前記測定結果又は前記計算結果に基づいて、最適ブロックサイズを判断するステップと、前記最適ブロックサイズをアプリケーションに通知するステップとを更に含む、請求項2、3、4、又は5に記載の方法。前記読み取るためのステップと前記書き込むためのステップとを別個に実行するステップを更に含む、請求項1から6までのいずれか一項に記載の方法。前記ブロックを読み取るためにかかる時間及び/若しくは前記ブロックを書き込むためにかかる時間、並びに/又は前記ブロックを読み取るためのプロセッサリソースの使用量及び/若しくは前記ブロックを書き込むためのプロセッサリソースの使用量、並びに/又はプロセッサリソースの特定に使用によって読み取られる前記データ量及び/若しくはプロセッサリソースの特定に使用によって書き込まれる前記データ量に基づいて、前記決定するステップを実行するステップを更に含む、請求項1から7までのいずれか一項に記載の方法。装置上で実行されるとき、請求項1から8までのいずれか一項に記載の方法を実行するように構成されたコンピュータプログラムコードを備えたコンピュータプログラム製品。請求項1から8までのいずれか一項に記載の方法を実施するための手段を備えた装置。前記装置が、前記キャッシュと、前記ストレージと、データストリームが通過する構成要素とを備え、前記構成要素が、少なくとも、ブロックサイズに関して、前記ブロックサイズに関して前記のより効率的な方法に基づいて前記キャッシュ又は前記ストレージを使用するための手段である、請求項10に記載の装置。一定のブロックサイズに関して、キャッシュを使用することがより効率的であるか、又はストレージを直接的に使用することがより効率的であるかを測定し、それぞれの測定されたブロックサイズに関して、前記のより効率的な方法を選択し、前記ブロックサイズを前記選択された方法と関連付け、前記ブロックサイズを有するデータストリームに応答して、前記ブロックサイズに関して、前記判断されたより効率的な方法を使用するように構成されたコンピュータ構成要素。前記ブロックを読み取るためにかかる時間及び/若しくは前記ブロックを書き込むためにかかる時間、並びに/又は前記ブロックを読み取るためのプロセッサリソースの使用量及び/若しくは前記ブロックを書き込むためのプロセッサリソースの使用量、並びに/又はプロセッサリソースの特定の使用によって読み取られる前記データ量及び/若しくはプロセッサリソースの特定の使用によって書き込まれる前記データを測定し、前記キャッシュに関して、及び前記ストレージの前記直接的な使用に関して取得された測定結果に基づいて前記のより効率的な方法を選択するように更に構成された、請求項12に記載のコンピュータ構成要素。前記コンピュータ構成要素が、コントローラ、制御ユニット、マイクロコントローラ、シングルチップコンピュータ要素、チップセット又はボードである、請求項12又は13に記載のコンピュータ構成要素。以下の説明は、本発明のいくつかの態様の基本的な理解をもたらすために、本発明の簡素化された要約を提示する。この要約は本発明の広範囲な概要ではない。本発明の主な要素/重要な要素を識別すること、又は本発明の範囲を描くことは意図されない。その唯一の目的は、後に提示されるより詳細な説明の前置きとして、本発明のいくつかの概念を簡素化された形態で提示することである。いくつかの実施例の態様は、データストリームのブロックサイズに関する情報と、キャッシュを使用しようと、又はストレージを直接的に使用しようと、そのブロックサイズに関して判断されたキャッシュ及びストレージ性能とに基づいて決定するステップと、それに応じて動作するステップとを含む。本発明の様々な態様は、独立クレームに定義されるような方法、装置、及びコンピュータプログラム製品を含む。本発明のさらなる実施例は独立クレームで開示される。以下の説明では、添付の図面を参照して、異なる実施例がより詳細に説明される。次に、本発明のすべての実施例ではなく、そのいくつかが示される添付の図面を参照して、本発明の例示的な実施例が以下でより十分に説明される。実際に、本発明は、多くの異なる形態で実施可能であり、本明細書に記載される実施例に限定されると解釈されるべきではない。むしろ、これらの実施例は、本開示が適用可能な法的要件を満たすように提供される。本明細書はいくつかの場所である、一、又はいくつかの1つ若しくは複数の実施例を参照する場合があるが、これは必ずしもそれぞれのそのような参照が1つ若しくは複数の同じ実施例を指すとは限らず、又はその特徴が単一の実施例だけに適用されるとも限らない。異なる実施例の単一の特徴は、組み合わされて他の実施例を提供することも可能である。本発明の実施例は、コンピューティング装置、コンピュータ、対応する構成要素に、且つ/又はキャッシュの使用をサポートする任意のコンピューティングシステム又はコンピューティングネットワークに適用可能である。コンピューティング装置は、任意の種類のプロセッサ、オペレーティングシステム、及び1つのメモリ/複数のメモリを含むことが可能である。したがって、すべての用語及び表現は、広く解釈されるべきであり、実施例を限定するのではなく、実施例を例示することが意図される。ある実施例によるコンピューティング装置の一般的な構成が図1に例示される。図1は、コンピューティング装置のいくつかの構成要素だけを示す簡素化されたブロック図であり、これらの構成要素はある実施例を示すために使用されている。このコンピューティング装置は、ここで詳細に説明される必要がない他の構成要素、モジュール、接続、結合などを含むことが可能である点を理解されたい。コンピューティング環境を示すコンピューティング装置100は、アプリケーション120を実行する、バス101を経由して決定構成要素130に結合されたプロセッサ110を備える。決定構成要素130、それによって、プロセッサ及びアプリケーションは、更に、バス102を経由してキャッシュ140に結合されて、バス103を経由してストレージ150に結合される。ある実施例を用いて下で説明される決定構成要素130の機能性を実施するコンピューティング装置100は、先行技術手段だけでなく、例えば、キャッシュを使用するか、又はストレージを直接的に使用するかを決定するための手段も備える。より詳細には、コンピューティング装置は、ある実施例を用いて説明される機能性を実施するための手段を備え、コンピューティング装置は、それぞれの別個の機能に関して別個の手段を備えることが可能であるか、又は手段は2つ以上の機能を実行して、異なる実施例の機能を組み合わせるようにすら構成されることも可能である。一般に、プロセッサ110は中央処理装置CPUであるが、プロセッサは追加の演算プロセッサであってもよい。コンピューティング装置はその他の構成要素及び/又はキャッシュを備えることが可能であり、ストレージはインターネットを経由してアクセス可能な別のコンピューティング装置内に位置することも可能である点を理解されたい。決定構成要素130はある実施例を用いて下で説明される機能性を実行するように構成され、決定構成要素130は、異なる実施例からの機能性を実行するように構成されることも可能である。このために、決定構成要素は、決定表131を記憶するための少量のメモリを備えることが可能であり、実装形態に応じてプロセッサ110に接続され、又はそれ自体がそれらの機能性を実行するためのプロセッサ図1に示されずを備える。更に、この決定構成要素は、その他のユニットを備えることが可能であり、この決定構成要素は、例えば、制御情報、データ、及び書込み要求又は読取り要求を受信並びに転送するための異なるインターフェースを備える。ある実施例による決定構成要素は、一般に、内部メモリと装置の様々なインターフェースとに接続されたコントローラ、制御ユニット、マイクロコントローラなどであってよい。決定構成要素は、シングルチップコンピュータ要素、若しくはチップセットなど、マイクロプロセッサとして、又は算術演算のために使用されるストレージ領域を提供するための少なくとも1つのメモリと算術演算を実行するための演算プロセッサとを含むボードとして構成可能である。決定構成要素は、1つ若しくは複数の実施例の1つ若しくは複数の機能を実行するような形でプログラムされている、1つ若しくは複数のコンピュータプロセッサ、特定用途向け集積回路ASIC、デジタル信号プロセッサDSP、デジタル信号処理デバイスDSPD、プログラマブル論理デバイスPLD、フィールドプログラマブルゲートアレイFPGA、及び/又はその他のハードウェア構成要素を備えることが可能である。ある実施例は、装置内にロードされるとき、決定ユニットを構成するプログラム命令を備えた、任意のコンピューティング装置配布媒体上/データストレージ媒体上で実施されるコンピュータプログラムとしてこの決定構成要素を提供する。ソフトウェアルーチン、プログラムライブラリを構成するプログラムスニペット、並びにアプレット及びマクロを含む、プログラム製品とも呼ばれるプログラムは、任意の媒体内に記憶可能であり、コンピューティング装置内にダウンロード可能である。キャッシュ140及びストレージ150は、揮発性メモリ及び/又は不揮発性メモリであってよく、キャッシュ140及びストレージ150は異なるタイプのものであってよい。例えば、キャッシュ及び/又はストレージは、アプリケーション120の動作に関連するステップを実行するために、ソフトウェアアプリケーション又はオペレーティングシステムなどのコンピュータプログラムコード、中央処理装置又は対応するプロセッサに関する情報、データ、コンテンツなどを記憶することが可能である。キャッシュ及び/又はストレージは、例えば、ランダムアクセスメモリ、ハードディスク、フラッシュメモリ、固体メモリSSD、又はその他の固定データメモリデバイス若しくは固体データストレージデバイスであってよい。更に、キャッシュ及び/若しくはストレージ、又はそのそれらの一部は、装置に取外し可能に接続された取外し可能メモリであってよい。バス102及びバス103は、構成要素同士の間で任意の種類のデータを転送する任意のタイプのバスであってよく、バス102及びバス103は異なるタイプのものであってよい。バスは、複数のワイヤ上でデータを並列に搬送する並列バスであってよく、若しくはビットシリアル形態でデータを搬送する直列バスであってよく、又は並列接続とビットシリアル接続の両方を使用するバスであってもよい。したがって、バス102及びバス103は、データの転送を実現する異なる接続及び構成要素を含む任意の物理的な構成であってよい。コンピューティング装置は1つのエンティティとして図1に示されているが、メモリは1つ若しくは複数の物理的又は論理的なエンティティの形で実施可能である。例えば、キャッシュ及び/又はストレージは、複数のコンピューティング装置にわたる分散型共有ストレージデバイスとして実施可能であり、バスはコンピューティング装置内で、又はコンピューティング装置間でデータを転送することができる。これらのユニット及び機能は、ソフトウェア構成要素及び/又はソフトウェアハードウェア構成要素並びに/或いは読出し専用メモリなどの媒体上に永久に記録されるか、若しくは配線されたコンピュータ回路の形で実施されるファームウェア構成要素であってよい。図2は、ある実施例による決定構成要素の機能性を例示する。この実施例では、決定構成要素は、一定のブロックサイズに関して測定することによって、キャッシュを使用するのがより効率的であるか、又はストレージに直接的に記憶することがより効率的であるか、即ち、これらのメモリタイプのうちのどのメモリタイプがより効率的なメモリタイプであるかを判断する。ブロックサイズは、例えば、512kB、1kB、2kB、4kB、...1024kBであってよい。ブロックは書込み及び/又は読取りの単位である。この実施例では、決定構成要素は、読取り入力及び書込み出力に関して、下で説明されるステップを別個に実行する。これらは、ほとんど同時に実行されること、及び/又は下で説明される順序とは別の順序で実行されることが可能である点を理解されたい。別の実施例では、決定構成要素は、読取り又は書込みにだけに関して下で説明されるステップを実行し、次いで、読取りと書込みの両方に関する結果を使用する。しかし、読取り及び書込みは別個のタスクであるため、読取りと書込みの両方に関するステップを実行することは、コンピューティング装置内でI/Oの全体的な性能が最も効率的に利用可能にされるという利点を有する。示される実例では、分かり易いように、読取り又は、書込みのための時間は、どちらがより効率的であるかを決定するための決定要因として使用されると仮定される。しかし、決定要因として何が使用されるかについて制限は存在せず、決定要因は異なる要因の組合せであってよい。例えば、決定要因は、CPUリソースなど、プロセッサリソースの使用に関する場合がありより効率的な方法は、同じ量の作業に関してより少ないCPUリソースを使用するか、若しくは同じ量のCUリソースがより多い作業を実行する、又は決定要因は、時間とプロセッサリソース使用の両方を考慮に入れる場合もある。更に、コンピューティング装置の読取り動作及び/又は書込み動作を使用するアプリケーションは、決定要因に影響を与える要件を有する場合がある。ある実施例では、例えば、選択リストをユーザに提供することによって、ユーザに決定要因を選択する機会が与えられる場合があり、その場合、ユーザの選択が使用される。決定構成要素は、第1のブロックサイズを測りステップ201、ステップ202で、キャッシュから量を読み取ると同時に、それにかかる時間を測定する。次いで、ステップ203において、ストレージから直接的に同じ量が読み取れられ、それにかかる時間が測定される。次に、ステップ204において、決定ユニットは、より効率的であったメモリタイプ、即ち、示される実例では、最も高速のメモリタイプを選択して、ステップ205において、そのメモリタイプを読取り用のブロックサイズと関連付ける。次いで、ステップ206において、すべてのブロックサイズがメモリタイプと関連付けられているかどうかが検査される。そうでない場合、決定構成要素は、次のブロックに関して上記のステップを実行し、即ち、ステップ201にとどまる。すべてのブロックサイズがメモリタイプと関連付けられた場合、それらのブロックサイズは読取り入力のために使用できる状態にあるステップ207。この実施例では、上記のステップは、次いで、書込みに関して繰り返される。即ち、読取りの代わりに、ステップ202及びステップ203において書込みが実行される。その場合、その結果は、図1に例示されるように、読取り及び書込みに関して別個のブロックサイズ固有のメモリタイプの選択を有する決定表であってよく、読取り用のメモリタイプは書込み用と同じであるか、又は異なる。この実施例のある利点は、使用すべきメモリタイプを判断するとき、それらの現実の機能性に従って、すべての構成要素、異なるバスなどが考慮に入れられることである。これは、プロセッサの負荷が最小限に抑えられ、それによって、生成される熱が少なくなり、必要とされるエネルギーが少なくなるというさらなる利点を有する。本発明のさらなる実施例では、時間を測定することなど、測定を実行する代わりに、決定構成要素は、メモリ即ち、キャッシュ及びストレージのサイズ、当面どの程度の空きメモリが存在するか、バス速度など、システムパラメータを取得して、その情報を使用して、それぞれのブロックサイズに関してより効率的なメモリタイプキャッシュを経由して記憶するか、又はストレージに直接的に記憶するかを計算する。さらなる実施例では、決定構成要素は、測定と計算の両方を行い、ハードウェアを確認するために、それらの測定結果を計算された結果と比較するように構成される。ハードウェアの確認によって実現される利点は、考えられる障害を検出するのを助け、それによって、何らかのより大きな障害が発生する前に障害の修正を促すことである。測定/計算を例示する上記の説明は、ある間隔で、電源がオンにされるとき、及び/又はオペレーティングシステムオンライン更新、ドライバ更新、キャッシュ管理ソフトウェア更新、新しいメモリボードが設置されているなど、コンピューティング装置内にハードウェア変更若しくはソフトウェア変更が存在するときに実行可能である。別の実施例では、測定/計算は、データストリームが開始するたびに、そのデータストリームによって使用されるブロックサイズに対して実行される。図3は、決定構成要素が、ステップ301において、データストリームのブロックサイズの表示と、データストリームが読み取られることになるか、又は書き込まれることになるかに関する情報とを受信する状況を例示する。その場合、決定構成要素は、受信された表示を使用して、ステップ302において、図2を用いて上で例示されたように、例えば、作成された表から値を取得し、その値は、キャッシュ又はストレージのいずれかである。受信されたブロックサイズが試験されたブロックサイズのうちの1つでない場合、即ち、それがそのブロックサイズに関連するメモリタイプを有さない場合、実装形態に応じて、そのブロックサイズは次のブロックサイズに切り上げられるか、若しくは切り捨てられるか、又は最も近いブロックサイズが使用される。次いで、ステップ303において、そのデータストリームに関して、取得されたメモリタイプが使用される。例えば、データストリームが書き込まれることになる場合、ステップ302でどちらが取得されたかに応じて、データストリームは決定構成要素からキャッシュ又はストレージのいずれかに転送される。上記の内容は、データストリームのブロックサイズの表示と、データストリームが読み取られることになるか又は書き込まれることになるかに関する情報とが決定構成要素を通過するが、実際のデータストリームが決定構成要素を通らない実装形態にも適用される。決定構成要素は、アプリケーションに対して透過的であり得る。しかし、図4は、ブロックサイズが読取り/書込みに関して対応するメモリタイプと関連付けられた後で、決定構成要素が、ステップ401において、最適ブロックサイズを判断して、ステップ402において、その最適ブロックサイズをアプリケーションに通知する、ある実施例を示す。最適ブロックサイズは、好ましくは、図2を用いて説明された手順の間に取得された測定結果及び/又は計算結果を使用して判断され、最適条件は、最善の総合結果例えば、最善の速度又は最善の性能を提示するものである。したがって、この実施例は、動的な最適値が通知されることを実現し、この値はコンピューティング環境と、そのコンピューティング環境に行われた変更とを考慮に入れる測定及び/又は計算によって取得されている。そのような値を通知することは効率性を改善するが、開発者によって行われた推定に基づく、即ち、それがハードコーディングされた時点での開発者の最善の推定である、先行技術のハードコーディングされた通知値の場合、これは稀である。図2から図4において上で説明されたステップ及び関連する機能は、絶対的な発生順序ではなく、これらのステップのうちのいくつかは、同時に又は提示された順序とは別の順序で実行されることが可能である。例えば、読取り測定及び書込み測定は、別のブロックサイズを測るステップ201及び206前に、1つのブロックサイズに関して実行可能であるステップ202~205。それらのステップ間で、又はそれらのステップ内でその他の機能を実行することも可能である。それらのステップのうちのいくつか又はそれらのステップの一部を省略することも可能である。例えば、データを読み取る/書き込むアプリケーションは読取り及び/又は書込みに関してその独自の制御を要求することができ、その場合、データストリームは決定構成要素を通過するが、決定構成要素は、その要求に応答して、使用されることになるメモリタイプを取得せず、即ち、ステップ302及び303は、その場合、省略される。更に、それらのステップのうちのいくつか若しくはそれらのステップの一部を一緒に統合すること、又は対応するステップ若しくはステップの一部で置換することも可能である。例えば、ステップ202及びステップ203で時間を測定する代わりに、又はそれに加えて、CPU使用を測定することが可能である。技術が進展するにつれて、この発明性のある概念を様々な方法で実施することが可能である点は当業者に明らかになるであろう。本発明及びその実施例は上で説明された実例に限定されず、特許請求の範囲内で変形し得る。