問題タブ [large-data]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 文字列の配列のnumpy.memmap?
文字列numpy.memmap
の大規模なディスクベースの配列をメモリにマップするために使用することは可能ですか?
フロートなどでできることは知っていますが、この質問は特に文字列に関するものです。
固定長文字列と可変長文字列の両方のソリューションに興味があります。
このソリューションは、適切なファイル形式を自由に指定できます。
mysql - ラージレコードテーブル挿入の問題Mysql
私は開発者であり、大量のレコードを持つテーブルを管理しているときに問題に直面しています。
5〜6列で約4,00,000〜5,00,000行のプライマリテーブル(テーブルA)にデータを入力するためにcronジョブを実行しています。その後、別のテーブルを作成すると、このテーブルのデータは時間の経過とともに増加し続けます。 。
表Aには生データが含まれており、出力表は表Bです。
私のcronスクリプトは、表Bのデータを切り捨ててから、selectクエリを使用してデータを挿入します
上記の選択クエリは、約1,50,000〜2,00,000行を生成します
現在、テーブルBにデータを入力するのに時間がかかりすぎています。その間、アプリケーションがテーブルBにアクセスしようとすると、クエリの選択が失敗します。
次のクエリ結果の説明:
誰かがこのプロセスを改善するのを手伝ってくれますか、または上記のプロセスの代替案を教えてもらえますか?
ありがとう
スケツ
python - numpy: ブール値のインデックス作成とメモリ使用量
numpy
次のコードを検討してください。
ここ:
A
およびB
は、同じ列数の 2D 配列です。start
およびend
スカラーです。mask
1D ブール配列です。(end - start) == sum(mask)
.
原則として、上記の操作は、 の要素を に直接O(1)
コピーすることにより、一時ストレージを使用して実行できます。B
A
これは実際に実際に起こることですか、それともnumpy
一時的な配列を構築しB[mask]
ますか? 後者の場合、ステートメントを書き直すことでこれを回避する方法はありますか?
python - numpy.memmap のパージ
numpy.memmap
で作成されたオブジェクトmode='r'
(つまり、読み取り専用) が与えられた場合、オブジェクト自体を削除せずに、読み込まれたすべてのページを物理 RAM から強制的に削除する方法はありますか?
言い換えれば、memmap
インスタンスへの参照は有効のままにしておきたいのですが、ディスク上のデータをキャッシュするために使用されているすべての物理メモリはコミットされないようにします。配列へのすべてのビューmemmap
も有効なままにする必要があります。
これを診断ツールとして使用して、スクリプトの「実際の」メモリ要件と、memmap
.
RedHat で Python 2.7 を使用しています。
ios - iOSアプリで変化する多くのデータを処理する簡単な方法はありますか?
作業中のアプリがあり、相互に依存する多数のデータがあります。基本的に、他の数値フィールドを計算するために使用される数値フィールドのセットがあり、それらは他のフィールドを計算するために使用されます。潜在的に多数の変更を処理する最善の方法を決定しようとしています。
私が考えた解決策の 1 つは、ユーザーが変更できる値のセッターをオーバーライドして計算を実行し、データ オブジェクト内の他の値を適切に更新することです。これの最大の欠点は、記述する必要がある (やや定型的な) コードの膨大な量です。
私が考えた別の解決策は、Key-Value Observing を使用してデータの変更を処理し、それらの変更から依存値を更新することです。独立した値が更新される場合を除き、依存する値は更新されないことに注意してください。これはもう少しエレガントだと思いますが、潜在的なパフォーマンスの問題、またはおそらく考慮していない問題について懸念しています。
私が見逃している第3の方法はありますか?この種の作業のベスト プラクティスはありますか? ある種のボイラープレート コードを大量に書かなければならない可能性が高いことはわかっています。このコードは、保守が最も簡単で、可能な限り最小限のコードにしたいと考えています。
delphi - Delphi 6 の巨大なファイルのサポート? (システムモジュールの交換?)
巨大な固定長のレコード データ ファイルを操作する際に問題が発生しています。ファイルのサイズは 14 GB を超えています。System.Filesize()
ファイル内のバイト数と各レコードの長さを考えると、関数からの戻り値が巨大なファイル内の実際のレコード数よりもはるかに少ないのを見て、最初に問題に気付きました。(System.Filesize は、呼び出し中に指定されたレコード サイズを指定すると、型指定されていないファイル内のレコード数を返しますReset()
。ファイル内のバイト数は返しません)。System.Filesize()
Int64 ではなく、倍長整数の戻り値の型までチョークで書きました。
GetFileSizeEx()
自分でレコード数を呼び出して計算することで、最初の問題を回避しました。残念ながら、BlockRead()
オフセットがファイルの奥深くにあるファイル内のレコードにアクセスしようとすると失敗します。コードのどこかでオーバーフローしている値が使用されていると思います。
巨大なファイルを処理でき、システム ユニットのファイル I/O 呼び出しに代わる Delphi 6 の代替モジュールはありますか? できれば自分で転がすのを避けようとしています。
c# - EWS GetItem リクエスト + IncludeMimeContent + 巨大なメール = OutOfMemoryException
200 MB の Exchange 2007 メールボックスに電子メールがあります。どうしてそんなに大きくなったのか私に聞かないでください。知らない。しかし、それはメールボックスにあり、MIME 形式で送信する必要があります。さらに難しくするには、C# で EWS を使用して MIME 形式で出力する必要があります。
理論的には簡単ですよね?私がしなければならないことは次のとおりです。
...そしてそれを送信します:
しかし、200 MB のメールでは、実際の生活はすぐに頭を悩ませます。私のプログラムは、2GB のメモリを使い果たした後、System.OutOfMemoryException で爆発します。スタック トレースは次のことを示しています。
そして案の定、200 MB のメールが BASE64 でエンコードされた XML として RAM に読み込まれています。そして、コールスタック全体でそれをいじるさまざまな自動生成メソッドによって、おそらくRAMに数回保存されている傷に汚れをこすりつけていると思います。
面倒なのは、メソッドから BASE64 でエンコードされた MIME メッセージを取得した後 (小さなメッセージの場合は問題なく動作します)、最初にそれをディスクに書き込み、それを保持しているオブジェクトを解放してメモリを解放することです。FromBase64Transform を使用して BASE64 をディスクから読み取るコードを既に持っています。このような恐ろしいシナリオを防ぎたかったのです。
そうは言っても、XML 応答が RAM で処理されないようにするにはどうすればよいでしょうか? 理想的には、ディスクに書き込んでから順番に読みたいと思います。EWS 用に独自の SOAP クライアントを完全にロールバックする必要なく、これを行う方法はありますか?
Edit2: 前の編集も機能しませんでした。Web サービス クラスを再生成すると壊れました。さて、振り出しに戻ります。
python - win64上のpython3.2.0、大きなペイロードが失敗するxml-rpc
現在、標準のxmlrpc.server.SimpleXMLRPCServer(ThreadingMixInを使用)を使用してXML-RPCを介してメソッドが公開されているPythonオブジェクトがありますが、これは関係ありません。
サーバーはクライアントと同様にWin64で実行されています。一部のRPCメソッドは、データベースからクライアントに情報のテーブルを返します。ささやかなデータブロックでさえOSを圧倒していることに気づき、この種のエラーが発生します。
Errno 12の問題に関するいくつかの調査では、Python自体ではなく、基盤となるMS OS呼び出しに問題があることが明らかになっています:http: //bugs.python.org/issue11395
私は経験豊富なXML-RPC開発者ではありません。しかし、大きなペイロードを配信するために従わなければならない標準的な規則がありますか?これにより、書き込みが少なくなり、大きな書き込みが少なくなりますか?
また、バッファオーバーランについて質問していることを忘れないでください。独自のRESTfulインターフェイスをローリングするのではなくXML-RPCを使用している理由について議論する必要はありません...この問題については、WSGIアプリケーションにパッチを適用する必要がありました。大きなブロックではなく小さな1kブロックを送信します。XML-RPCアプリケーションにパッチを適用する方法がわかりません。
- 編集 -
要求に応じて、問題を再現するコードサンプルを次に示します。
そしてクライアントコード:
サーバーのページを小さく操作すると、コードは機能します。そのまま、例外がスローされます。
- 編集 -
Python3.2.1rc1で解決されているようです。インストールをアップグレードする必要があるようです。
mysql - MySQL - ライブ サーバーで集中的なクエリを実行する
MySQL データベースで何百万もの行を更新および挿入する際に問題が発生しています。テーブル A の 5,000 万行にフラグを付け、マークされた 5,000 万行のデータをテーブル B に挿入し、テーブル A の同じ 5,000 万行を再度更新する必要があります。テーブル A には約 1 億 3000 万行、テーブル B には 8000 万行あります。
これは、Web サイトからの他のクエリへのアクセスを拒否することなく、ライブ サーバーで行う必要があります。問題は、このストアド プロシージャの実行中に、Web サイトからの他のクエリがロックされ、HTTP 要求がタイムアウトになることです。
これがSPの要点であり、説明のために少し簡略化されています。
c# - 理由のない ASPX.NET アプリケーションのメモリ不足例外
これが取り引きです: 私の Web サーバーが起動すると、非常に小さなオブジェクト (1-2-3 int など) を持つ長い (20M の要素) 配列がいくつか作成されます。個々の配列の累積サイズは 2 GB を超えません (CLR の制限です。詳細については、以下のリンクを参照してください)。w3wp.exe のメモリ使用量は 2GB 近くまで増加します (それ以上になることはありません)。コードはAny CPU
プラットフォーム モードでコンパイルされ、8 GB の RAM を搭載した Windows 7 x64 で実行されます。
リストの作成中に OutOfMemoryException をスローするのは一体何なのでしょうか? IIS または VS を介してプロセスをホストする場合、違いはありますか? これは PROD では発生していないように見えますが、私の開発マシンでは常にこれが発生しています。(すぐに再起動しようとします...)
これは関連している可能性がありますが、それほど大きなオブジェクトはないようです: .Net の非常に大きなコレクションにより、メモリ不足の例外が発生します
編集:IISまたはVSで実行することは違いがあります-プロセスがIISで開始されたときにそれが起こっていることを確認しないでください。VSデバッガの制限でしょうか?