0

Aptana (ruby IDE) でプログラムを作成し、ruby 配列で大量の計算を行い、多くの場合、計算を追加して、結果から変数を作成しています。そこからさらに計算を行うなど。ただし、スクリプトを実行するたびに、最初にファイル (数メガバイト) を再読み取りし、配列に配置する必要があります。これには時間がかかります。

今、私はプログラミングに本当に慣れていないので、プログラミングが一般的にどのように機能するかについてまだ理解が不足しています. しかし、どうすればこの問題を解決できますか?

これがどのように行われるかを推測すると。私のプログラムを2つのファイルに分割し、配列を停止せずに実行するかもしれません。そして、他の ruby​​ ファイルは配列ファイルを使用します。それがどのように行われるかはわかりません。

私は解決策に近づいていますか?

また、私がaptanaで開発していると言ったことに気づいていただければ幸いです。スクリプトを正常に実行しようとさえしていません。私はそこでまったく同じ問題を抱えていると思います。

4

2 に答える 2

0

プロセスを実行し続け、別のプロセスからプロセスの読み取り/書き込みを行うアプローチは、スクリプトの開始時にデータを読み取り、スクリプトの終了時にデータを書き出すよりもはるかに複雑になります。複数のプロセスを管理することは、数メガバイトのデータの読み取りと書き込みを回避するためだけに問題を起こす価値はありません。

現在、ファイルの書き込みと読み取りをどのように行っているかはわかりませんが、Rubyに組み込まれているYAMLサポートを使用することをお勧めします。

シリアル化:

require 'yaml'

arr = [1, 2, 3, 4]

arr.to_yaml(File.new('test.yml', 'w'))

デシリアライズ:

require 'yaml'

arr = YAML::load(File.new('test.yml', 'r'))

p arr

# => [1, 2, 3, 4]

もちろん、毎回配列をロードする必要がありますが、少なくとも、配列内のすでに計算された値に対してすべての数学演算を繰り返す必要はありません。

于 2012-08-16T19:40:49.490 に答える
0

おそらくirbを使用してこれを行うことができます。つまり、Ruby インタープリターを起動し、配列自体が変更されない限り、配列を 1 回ロードします。その後、その配列に対して操作を実行できます。

コードをファイルにコピーして変更を永続的にキャプチャするか、アルゴリズム/数学をスクリプト ファイルに記述し、そのファイルを繰り返しインタープリターにロードして、インタープリターの新しいメソッドまたは書き換えられたメソッドにアクセスできます。

IRB rub​​y​​ でドキュメントを読み込む」は、これがどのように行われるかを理解するのに役立つかもしれません。

于 2012-08-16T19:37:03.700 に答える