スポンサーサイト

-- --, --
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PatternCount と Position どっちが早い?

01 17, 2014
テキスト内に任意の文字列が出現しているか否かの判別に利用できる関数。

PatternCount関数Position関数 があります。

対象のテキストを最後まで舐める PatternCount に対し、
1回目の出現の位置で終了する Position の方が早いと考えられています。

実際にはどうなのでしょうか?


多量のレコードに判別をするスクリプトを書く機会があったので
どちらが早いのか試しに検証してみました。

検証方法:

1.対象レコードの特定のテキストフィールドに任意の文字列が含まれているか判定
 PatternCount ( テキスト ; 検索テキスト )
 Position ( テキスト ; 検索テキスト ; 1 ; 1 ) のそれぞれ。
2.結果を変数に設定するスクリプト、フィールドに設定するスクリプトをそれぞれ実行。

テキスト [約20,000文字] から任意の文字列の出現を判定。
500レコードを用意してそれぞれにランダムなテキストフィールドを作成。
テキストに含まれるのは日本語の五十音ひらがなのみ。
最後のレコードの判定までの時間を計測。


1.ローカルのファイルで実行
2.サーバーでホストされたファイルで実行
3.「サーバー上のスクリプトを実行」スクリプトステップを実行


Get ( 現在の時刻 UTC ミリ秒 ) を用いて経過時間をミリ秒まで計測。
それぞれ10回処理を行い、平均値を抽出しています。

FileMaker Pro / FileMaker Go でそれぞれ検証しています。

実行環境:
サーバー
OS: Windows Server 2008 R2 Standard
CPU: 2.13GHz 4コア相当
メモリ: 4GB

クライアント
MacBook Pro Retina
OS: OS X 10.9.1
CPU: 2.7GHz Core i7
メモリ: 16GB

iPad mini Retina
OS: iOS7.0.4
CPU: Apple A7(64ビット) 1.3GHz相当
メモリ: 967MB

こちらが検証結果です。

20140117_001.png

20140117_002.png
Posted in FileMaker
プロフィール

まめちゃい

Author:まめちゃい
FileMaker でご飯を食べています。

最新記事
カテゴリ
おすすめ
Powered by amaprop.net
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。