の処理のオーバーヘッドlength()にREXX?
-
21-08-2019 - |
質問
どのような処理のオーバーヘッドの長さ()関数にREXXの文字列の長さは?
更新:を使用してい:
- ユニREXX(R)バージョン297t
- オープンREXX (TM)Copyright(C)iX株式会社 1989-2002.All rights reserved.
解決
オーバーヘッドは0長さは、ディスクリプタに格納されている。
ニールMilsted UNI-REXX(冗談)の作者ます。
他のヒント
これは、実装に完全に依存します。あなたは、OS / 2用のREXX、のz / VMのREXX、REXXのz / OS用、Windows用OOREXX、REXX / 400またはレジーナを意味していますか?
IBMのうちREXX言語の仕様では、何もない機能がカバーの下に実装されているか、それはO(N)可能性が決まりますが、文字列またはOをスキャンする場合(1)長さがどこかに文字列で格納されている場合。
それはだ場合は、の本当にの重要な、最高の長さが違いを作るかどうかを確認するためにベンチマークコードをテストします。
私はよく分かりません。私は私の日にいくつかのRexxを書いたが、私は長さ()関数のパフォーマンスの問題があったことがありません。これは、スケールの方法は、おそらくRexxのパーサの実装に依存されます。
私は、REXXスクリプトを書きたいという10文字のおとり捜査の「長さ()」の回10.000呼び出し、その後、100文字の文字列で、その後、1000年の文字列でます。
グラフが得られ倍をプロットすると、あなたのパフォーマンスが低下する方法についての近似を与えるだろう。
このすべてを言って、私の推測では、パフォーマンスの低下は、O(N)のように、最も直線的であるということです。 ( http://en.wikipedia.org/wiki/Big_O_notation を参照してください)。
これの言語の実装固有の。実際に私がAREXX(Amigaの実装を)書いて、それは15年前、私は今、すべてのREXXを書いたので、長い時間でした。 : - )
あなたはあなた自身のテストルーチンを書くことができます。増加の長さの文字列を生成し、それが高性能なタイマーを使用して()の長さを取得するのにかかる時間を測定します。テキストファイルベースのカンマ区切りの表に時間と文字列の長さを保存する場合は、 gnuplotのを使用して、それをプロットすることができます。そして、あなたはそれがどのようにスケーリングするか非常に明確に表示されます。
編集:彼は多かれ少なかれ同じことを書いたので、私は最初のロルフの答えをチェックしている必要があります。 : - )
私は、IBMのメインフレームのバージョン、OS / 2のために従来のREXXのバージョン、およびオブジェクトのRexxの実装のいずれかのために話すことができます。長さは、ストリング記述子に格納されているので、オーバーヘッドは文字列の長さとは無関係です。