問題タブ [chunking]

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.

0 投票する
0 に答える
1625 参照

php - PHP スクリプト ウォッチドッグ タイマー

コミュニティに対して、私は現在、標準チャンクをそのまま使用してファイルを提供する PHP スクリプトを作成しています。

私がやりたいのは、flush() の後に timerReset(); のような何らかのメソッドを追加することです。次に、ある種のタイマーループで:

このようにして、遠端がパケットの受信を停止したり、ストリームに追いつかなくなったりした場合、次のようなことを行うことができます。 a) エンコード ビットレートを変更します。b) スクリプトを停止し、リソースをクリーンアップ/解放します。

Apache / PHP が Keep-Alive などのヘッダーをネゴシエートできることは認識していますが、それらを正確に活用する方法や実際に使用する方法がわかりません。
AJAX サービスの使用は好ましくありません。ここでの目的は、アプリケーション サーバーを使用して、インターネット経由でファイル サーバーからモバイル デバイスにメディア コンテンツをストリーミングすることです。「アプリ」を作成することも検討しましたが、クロスプラットフォーム コーディング (android/bb/iOS/W7M) と SmallTalk (ObjectiveC) に関する非常に限られた知識により、不要な複雑さが追加されます。

0 投票する
3 に答える
2626 参照

clojure - Clojure では、レイジー seq は常にチャンクされますか?

レイジー seq は常にチャンクされているという印象を受けました。

によって返されるレイジー seq はrange32 要素のチャンクに分割されるため、予想どおり 32 ドットが出力されます。ただし、代わりにrange自分の関数でこれを試すとget-rss-feeds、遅延シーケンスはチャンクされなくなります。

ドットが 1 つだけ出力されるので、返される lazy-seq はget-rss-feedsチャンクされていないと思います。それはそう:

のソースは次のget-rss-feedsとおりです。

そのため、チャンク性は、レイジー seq の生成方法に依存するようです。関数のソースをのぞき見したところrange、「分厚い」方法で実装されているというヒントがあります。だから私はこれがどのように機能するかについて少し混乱しています。誰かが明確にしてもらえますか?


これが私が知る必要がある理由です。

次のコードが必要です。(get-rss-entry (get-rss-feeds h-res) url)

を呼び出すとget-rss-feeds、調べる必要のあるフィードの URL の遅延シーケンスが返されます。

への呼び出しget-rss-entryは、特定のエントリ (:link フィールドが get-rss-entry の 2 番目の引数と一致する) を探します。によって返された遅延シーケンスを調べますget-rss-feeds。各項目を評価するには、新しい RSS フィードを取得するためにネットワーク経由で http 要求が必要です。http リクエストの数を最小限に抑えるには、シーケンスを 1 つずつ調べて、一致したらすぐに停止することが重要です。

コードは次のとおりです。

entry-with-url一致の遅延シーケンスを返すか、一致がない場合は空のシーケンスを返します。

これをテストしたところ、正しく動作しているようです (一度に 1 つのフィード URL を評価します)。しかし、どこかで、どういうわけか「分厚い」方法で動作し始め、一度に 32 個のフィードを評価し始めるのではないかと心配しています。here で説明されているように、チャンキーな動作を回避する方法があることは知っていますが、この場合は必要ではないようです。

非慣用的にレイジー seq を使用していますか? ループ/再帰はより良い選択肢でしょうか?

0 投票する
1 に答える
197 参照

php - チャンクされた HTML 5 アップロードの再結合

ファイル API を使用して、外部ライブラリを使用せずに HTML5 アップローダをゼロから作成しました。150 MB を超えるファイルをアップロードしようとするまでは正常に動作していました。この時点で、ファイルをチャンクとしてアップロードする必要があることに気付きました。

Javascript 側は、ファイルを分割してアップロードしている他の誰かによってソートされています。私は PHP 側に取り組んでおり、これらのチャンクを再結合する方法を理解するために何を調べる必要があるかを知る必要があります。

各チャンクのヘッダーを変更する必要がありますか?

次のチャンクを待っている間にチャンクをキューに入れるにはどうすればよいですか?

私たちはこれを長い道のりで行っていますか?

0 投票する
3 に答える
1997 参照

python - Python:入力ストリームをチャンク化するためのライブラリ関数はありますか?

バッチ処理のために入力ストリームをチャンクしたい。入力リストまたはジェネレーターが与えられると、

その入力のチャンクを返す関数が必要です。と言う、もしそうならchunk_size=4

これは私が何度も繰り返していることであり、自分で書くよりも標準的な方法があるのではないかと考えていました。私は何かが欠けていitertoolsますか?enumerate(とで問題を解決することはできますgroupbyが、それは不格好に感じます。)誰かが実装を見たい場合は、ここにあります、

編集

kreativiteaの答えに触発されて、これがでの解決策isliceです。これは簡単で、事後フィルタリングを必要としません。

0 投票する
2 に答える
4101 参照

r - 距離行列の計算を繰り返し計算し、特大の距離行列をチャンク化するための効率的な (メモリに関する) 関数

誰かが次のコードと最小限の例を見て、特に非常に大きなデータセットを扱うときのコードの効率に関して改善を提案できるかどうか疑問に思います。

この関数は data.frame を受け取り、それをグループ化変数 (係数) で分割してから、各グループのすべての行の距離行列を計算します。

距離行列を保持する必要はありません-いくつかの統計、つまり平均、ヒストグラムのみ..、それらは破棄できます。

私はメモリ割り当てなどについてあまり知りません。グループごとに 10.000 ~ 100.000 のケースで作業するので、これを行うための最良の方法は何か疑問に思っています。どんな考えでも大歓迎です!

また、重大なメモリの問題が発生した場合のように、ビッグメモリまたはその他の大規模なデータ処理パッケージを関数に含める最も簡単な方法は何ですか?

編集:回答として投稿したチャンクの問題を反映するようにタイトルを編集しました..

0 投票する
1 に答える
10212 参照

java - サーバー(Plupload / Spring MVC)でファイルアップロードチャンクを処理する方法は?

私たちのクライアントでは、大きなファイルをアップロードすることが可能です。チャンクを使用してリクエストのサイズを減らしたいと思います。Pluploadを使用しているので、ファイルをまとめて送信するのは簡単です。ただし、チャンクの処理方法がわかりません。サーバーでSpringMVCを使用していますが、現在、コントローラーメソッドには次のものがあります。uploadMedia(@RequestBody MultipartFile file)ここで、MultipartFileorg.springframework.web.multipart.MultipartFileです。これは、チャンク処理を行わない場合でも問題なく機能します。クライアント側でチャンクをオンにしても、このメソッドには問題なく入りますが、渡されるファイルには、チャンクがどのファイルの一部であるかを識別するものは何も表示されません。うまくいけば、私は何かが足りないだけです。

これは一般的なワークフローのようですが、サーバー側でこれがどのように行われるかについての良い例を見つけることができないようです。Springだけのソリューションは素晴らしいでしょうが、別のライブラリが必要な場合はそれでも構いません。Apache Commons FileUploadをいくつか調べましたが、チャンクについては何も見つかりませんでした。これに関するどんな助けも素晴らしいでしょう。ありがとう。

0 投票する
2 に答える
7588 参照

spring-batch - Spring Batch でのチャンク読み取り - チャンク書き込みだけでなく

私の仮定

私の理解では、Spring Batch の「チャンク指向の処理」は、1 つのトランザクションで複数のアイテムを効率的に処理するのに役立ちます。これには、外部システムからのインターフェースの効率的な使用が含まれます。外部通信にはオーバーヘッドが含まれるため、制限され、チャンク指向でもある必要があります。そのため、 のコミット レベルがありItemWriterます。だから私が得られないのは、なぜItemReaderまだ項目ごとに読まなければならないのですか? チャンクも読めないのはなぜですか?

問題の説明

私のステップでは、リーダーは Web サービスを呼び出す必要があります。そして、ライターはこの情報を別の Web サービスに送信します。そのため、必要なだけ呼び出しを行いたくないのです。

のインターフェースItemWriterはチャンク指向です - ご存じのように:

しかし、ItemReaderそうではありません:

回避策として、アイテムのリストを読み取り、それらを保存し、そのメソッドが呼び出されるChunkBufferingItemReaderたびにアイテムを 1 つずつ返すを実装しました。read()

しかし、現在、例外処理とジョブの再開に関しては、このアプローチは厄介になっています。フレームワークが私のためにしてくれるはずの、ここで仕事をしているような気がします。

質問

それで、私は何かを逃していますか?見落としていた Spring Batch の既存の機能はありますか?

別の投稿では、 の戻り値の型を に変更することが提案されItemReaderましたList。しかし、その後、ItemProcessor単一の入力から複数の出力を発行する必要があります。これは正しいアプローチですか?

私はどんなベストプラクティスにも優雅です。前もって感謝します :-)

0 投票する
1 に答える
462 参照

asynchronous - チャンキングには非同期実行が組み込まれていますか?チャンクを非同期にストリーミングする方法は?

Playのドキュメントでは、「コンテンツのストリーミング」のソリューションとしてチャンクが紹介されています。scHTTPスレッドをブロックせずにストリーミングコンテンツをゆっくりと生成できるかどうか、または(として宣言されているChunks)を変更してチャンクをAsyncResultに個別に変換する必要があるかどうかはわかりません。

に:

2番目のソリューションを使用する場合、チャンクはブラウザーに段階的に表示されないので、そうしてもらいたいと思いました。前もって感謝します。

0 投票する
2 に答える
3128 参照

search - 文字列で名前を識別する

自分のサイトでユーザーが検索したクエリ内で、人や場所などの名前を特定する良い方法を見つけたいと考えています。たとえば、ユーザーが「ジョージ ワシントンは何歳ですか」と尋ねた場合、あらかじめ定義されたリストからジョージ ワシントンが人物であることを知ることができる必要があります。

リストにはグローバルなものもあれば、ユーザー固有のものもあります。たとえば、「John Smith は何歳ですか」と尋ねられた場合、私は特定の John Smith を特定したいだけで、彼が私の仲間でない場合は特定したくありません。

Soundx、成熟した NLP、ミススペルなどの機能を活用するために実行できる NLP ライブラリまたはこれらのリストのクロールはありますか? 手で書くこともできますが、成熟したものを活用したいと思います。ありがとう。

0 投票する
2 に答える
2435 参照

c# - ファイルをまとめてダウンロードする (Windows Phone)

私のアプリケーションでは、Web からいくつかのメディア ファイルをダウンロードできます。通常、私はWebClient.OpenReadCompletedメソッドを使用して、ファイルをダウンロードし、復号化して、IsolatedStorage に保存しました。それはうまく機能し、次のようになりました。

しかし、調査の結果、大きなファイル (私にとっては 100 MB 以上) を使用すると、このファイルのダウンロード中にOutOfMemory例外が発生することがわかりました。これは、WebClient.OpenReadCompleted がストリーム全体を RAM にロードしてチョークするためだと思います...そして、このストリームを復号化するには、より多くのメモリが必要になります。

別の調査の後、このファイルをIsolatedStorageに保存する際のOpenReadCompletedイベント(または復号化してから保存する)の後に大きなファイルをチャンクに分割する方法を見つけましたが、これは問題の一部にしか役立ちません...プライマリ問題は、ダウンロード プロセス中に電話が詰まらないようにする方法です。大きなファイルをチャンクでダウンロードする方法はありますか? 次に、見つかったソリューションを使用して、復号化プロセスを通過できます。(それでも、そのような大きなファイルをmediaElementにロードする方法を見つける必要がありますが、それは別の問題です)


答え: