問題タブ [stability]

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 に答える
481 参照

unix - FTP 対 SFTP、今回は時間安定性

FTP/SFTP 速度に関する素晴らしい記事を読みました: SFTP経由でファイルを転送すると、FTP よりも時間がかかるのはなぜですか?

しかし、ファイル (数千の小さなファイルといくつかの巨大なファイル) を転送するときに、これら 2 つのうちどちらがより「安定」しているかを示すテスト、または証拠や文書を持っている人はいますか?

ネイティブ クライアント/サーバー (Unix) を使用するプロトコル (SFTP、FTP) は、接続をドロップする可能性が高い/低い、再接続できる、または停止した接続を検出する可能性が高く、ファイルを台無しにする可能性が低い

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

c++ - C++: ファイル サイズを監視します。これは問題になる可能性がありますか?

フォルダー内のファイルをサーバーと同期する GUI プログラムを作成しています。これらのファイルについて私が知っている情報は、これらのファイルは常に書き込まれ、削除されないということです。私の懸念は、ファイルの書き込み中にファイルのアップロードを開始することです。これを回避するために、私は問題を解決する方法を発明しました。これが間違っているかどうかを教えてくれる専門家が必要です。

だから私がやっていることは、タイマー付きのイベントループがあるということです。このタイマーが作動するたびに、新しいファイルが追加されているかどうかが調べられます。新しいファイルが見つかった場合は、次の単純な関数を使用してファイル サイズを取得します。

次に、新しいファイル名、サイズをフォームのデータ構造に保存します (std::次の行に 5 つ書かれているため、視覚的にわかりやすくするために無視します)。

(可能であれば、より良いデータ構造を提案してください。unordered_multimap同様の仕事をしているようです)。

したがって、これはファイル名(その文字列内)、そのサイズ(その size_t 内)、およびファイルのサイズが変更なしでチェックされた回数を保存しますchecks。そのため、タイマーが作動するたびに、新しいファイルを探し、ファイルのサイズfileMonitorが変更されたかどうかを確認します。単一のファイルの場合、ファイル サイズが以前と異なるchecks = 1場合は 、ファイル サイズが同じ場合はchecks++.

ここで、各反復で、タイマーがinterval*checks > timeout. ファイルが十分な時間変更されていないかどうかを確認します。これにより、ファイルが安定しており、更新されていないと判断できます。

明らかな質問: のようなものを使用しないのはなぜinotifyですか? アップロードするファイルの動作をすでに知っているので、クロスプラットフォームで構造がシンプルなものが必要だからです。残念ながら、boost はこれに対する解決策を提供しないため、自分で発明する必要がありました。

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

java - Android BLE (Bluetooth LE) を見かけ上安定させる

Android 周辺機器通信 (この場合は MOTOROLA MOTO E ジェネレーション 2) をサポートする 2 つの Android デバイス間で次の BLE 通信を行うプログラムを作成しています。接続 -> 通信 -> 切断し、それらができるかどうかを確認します安定性が良い。テストで見つかった問題についても説明します。

このプログラムでは、最初に、デバイスを周辺機器にするか中央機器にするかを選択できます。中央側では、プログラムは最初にサービス UUID のフィルターを使用して周辺機器をスキャンします。

次に、周辺機器がスキャンされると、ハンドラーはメインスレッドから次を呼び出します。

周辺機器 (別の MOTO E によって動作) が接続されると、onConnectionStageChange() で次の処理が行われます。

すべてのサービスが検出されると、プログラムは次のことを行います。

記述子を更新して通知をサブスクライブし、データを書き込み、セントラルから送信されたデータを受信するとペリフェラルに送信します。ペリフェラルは値の変更を通知します。ペリフェラルからデータ変更通知を受信すると、ペリフェラルにデータを送信します。書き込みと通知のプロセスは 11 回行われます。次に、gatt.disconnect() を呼び出して、ble 接続を切断します。

上記のプロセスは、安定性をテストするためにループされます。

通常の接続中、上記のプロセスは 1.7 ~ 2.5 秒以内に実行できます。各 write-notify プロセスの間に、約 0.1 秒かかります

テスト中に次の問題が見つかりました。

  1. onConnectionStageChange() device.connectGatt() の呼び出しに最大 30 秒かかります。このような長い待ち時間が発生すると、次の onConnectionStageChange() は、まれに接続に失敗する可能性があります。
  2. onConnectionStageChange() は device.connectGatt() の後ですぐに呼び出されますが、newState = STATE_DISCONNECTED がときどき発生します
  3. 各書き込みコマンドの間に 0.5 秒かかる場合があります。
  4. プロセスは、どの段階でも停止するか遅くなります。

Android BLE スタックの根底にあるいくつかのバグのようです。したがって、私はウォッチドッグを実装しようとします。プロセスのいずれかが予想どおりに速く進まない場合、ウォッチドッグがアクティブになり、中央デバイスの Bluetooth をオフにしてから再びオンに切り替え、Bluetooth からの応答の待機を積極的に停止します。いくつかのエラー値であると予想されるスタック。Bluetooth が再びオンになるとすぐに、中央デバイスは周辺機器のスキャンを開始し、上記のテストを続行します。

ウォッチドッグ起動中にガットを閉じようとしたのですが、強制的にガットを閉じた後、連続したBLE接続が失敗する傾向があります。そのため、失敗するたびにエラーが蓄積する傾向があるようです。そのため、BluetoothAdapter...disable() で Bluetooth デバイスのオンとオフを切り替えることに頼っています。

Bluetooth をオフにして再度オンにすることは、他の Bluetooth デバイスを使用している可能性があるため、一部のユーザーにとってはかなり煩わしいものです。私の質問は次のとおりです。

  1. 上記のテストの安定性を高めるにはどうすればよいですか (私のコードに何か問題があるのでしょうか、それとも BLE スタックをより適切に使用するにはどうすればよいでしょうか)。

  2. 障害が発生した場合、BLE スタックを完全に切り替えるのではなく、BLE スタックのみをリセットするか、十分な量のリソースを閉じることは可能ですか?

eclipse プロジェクトはその下に置かれています。テストやプロジェクトの改善に興味がある場合は、ダウンロードして試してみてください。 https://drive.google.com/file/d/0B-w_C5ISF1UHRXUzd1FrUHpyV0k/view?usp=sharing

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

cluster-computing - 大規模な Hazelcast クラスターの安定性

私たちは (権力が自分のやり方を持っているなら、あまり長くは真実ではありません) 約 600 ノードのかなり大きなクラスターを持ち、それらはすべて同じ「グループ名」の下にありますが、それらのほんの一部 (約ダース) は、hazelcast.xml で定義された TCP/IP インターフェイスのリストにそれを作成しました。

これが私たちの構成です

私の理解では、残りはクラスターを定義する「グループ名」によってのみバインドされます。この構成ではマルチキャストを使用しません。私たちのクラスターの主な用途は、分散ロックです。最近気づいたのは、任意のタイムアウトとノード間の接続のドロップ、繰り返される「再パーティション化」とロックのハングです。しばらくするとすべてがフリーズします。以前はノードを再起動していましたが、Hazelcast TestApp コンソールを使用してロックのマップをクリアします。ロックとロック解除を行うコードが適度に水密であるという事実を保証できます。私の観察.. Hazelcast を 3.1.5 に更新し、ノードを 30 奇数から 500 以上にスケーリングするまで、以前はこのような問題はありませんでした。そのうちのほとんどのノードは JVM であり、多くの場合、同じノード上で最大 12 のノードです。物理ノード。これはしませんでした

a) ほとんどのノードが hazelcast.xml に記載されていないという事実は、クラスターのメンバーとしての安定性に影響しますか?

b) スケーリングの問題を見た人はいますか? これは Hazelcast のバグですか? それとも、他の人が Hazelcast でボールを持っている間に何かひどく間違ったことをしているのですか?

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

quicksort - 安定したクイックソートにつながるパーティションアルゴリズム

特定のパーティション アルゴリズムが安定したクイック ソートにつながる可能性があると言われています。

誰かがそのようなアルゴリズムを作成するための例やヒントを持っていれば役に立ちます

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

android - 複数のデバイスで Android のクラッシュをテストするにはどうすればよいですか?

クラッシュリティクスの追跡には Fabric を使用しています。毎日、特定のデバイスに関連するクラッシュ レポートを受け取ります。

私の質問は、Android でクラッシュを回避する方法です。クラッシュが発生した場合、どうすればテストできますか。クラッシュのほとんどは、デバイス固有およびネットワーク固有に関連しているためです。

  • 本番環境に移行する前に、クラッシュを特定してテストするためのツールはありますか?
  • さまざまな機能について、さまざまなデバイスでアプリをテストする方法はありますか。