0

現在、Web サイトのモバイル クライアントを作成しています。また、アプリとサーバー間の情報交換は JSON で行われます (サーバー上のユーザーとデータの検索、メッセージの送信、会話のスレッド化など)。しかし、これらの機能はすべて動作が遅すぎます。「送信」ボタンをクリックしてから、メッセージが送信されるまで数秒待ちます。検索、承認などと同じです。そのような質問があります。

1. パフォーマンスのオーバーヘッドが大きいのはなぜですか?

2. サーバー側の問題なのか、JSON パーサーの問題なのか、それとも別の問題なのか。

3. これを修正/最適化するにはどうすればよいですか? すべての解決策、アドバイスなどは役に立ちます!

4

2 に答える 2

1

Xcode を使用してアプリをデバッグし、ほとんどの時間がサーバーからのデータの読み込みに費やされているか、データを受信した後の JSON の解析に費やされているかを確認します。

初めての場合は、同じワイヤレス接続を介して PC からデータを読み込んでみて、速度が遅いかどうかを確認してください。もしそうなら、明らかにサーバー側のコードを最適化する必要があります。

それが 2 番目で、解析が遅い場合は、ネイティブの JSON パーサーの代わりにJSONKitを使用することを検討することをお勧めします。JSON の構造を確認することもできます。

ただし、iPad での接続が他のマシンよりも遅いことに気付きました。これは、シミュレーターで開発したアプリを同じネットワーク上のデバイスと比較したり、速度テストを行ったりしたときに気付きました。なぜこれが起こるのかについては、私にはわかりません - おそらく iOS の何らかの形の追加のオーバーヘッドです。

于 2012-12-05T16:56:32.927 に答える
1

時間を節約できます。JSON とは関係ありません。これは、アプリが一般的にリクエストを処理する方法に関係しています。明らかにサーバーでの最適化が必要です。

編集:

また、スマートフォンで高レイテンシが発生している可能性もあると思いますが、これもアプリとは関係ありません。

通常のブラウザと chrome dev ツール (ネットワーク タブ) を使用してデバッグします。デスクトップでもリクエストに時間がかかることがわかります。遅くなります(ヒント:最適化されていないデータベースクエリは大きなボトルネックです....しかし、やはり、くだらないハードウェアもそうです)。

これ以上お役に立てなくて申し訳ありませんが、サーバーのセットアップ全体と速度が低下しているコード (クライアントの要求ではなくサーバー コード) を確認せずに、それが私にできる最善の方法です。

幸運を祈ります。

于 2012-12-05T16:20:11.167 に答える