12

問題があります - Json.Net のオブジェクトのシリアル化が非常に遅いです。私はいくつかの基本的なクラスを持っています:

public class authenticationRequest
{
    public string userid;
    public string tid;
    public string token;
    public string platform;
    public string version;
}

そして、私はそれを連載しています

string jsonDataToSend = JsonConvert.SerializeObject(dataToSend); 

この動作には約 1900 ms かかります。Json.net CodePlexページの情報と比較して:

ここに画像の説明を入力

本当に長い時間がかかります。テスト目的で、クラスを単純な文字列に置き換えました。

string jsonDataToSend = JsonConvert.SerializeObject("fsdfsdfsdfs");

また、変換にはまだ 900 ミリ秒かかります。理由は何ですか?このデータをより高速にシリアル化するにはどうすればよいですか?

4

3 に答える 3

5

ここで起こっていると私が信じているのは、Json.Net ライブラリが読み込まれているときに遅延が発生していることです。リリース モードでコンパイルしてみて、処理速度が大幅に向上するかどうかを確認してください。これにより、シンボルが読み込まれなくなります (ライブラリの読み込み時間が長くなる可能性があります)。

それでも問題が解決しない場合は、ライブラリを強制的にロードするためにダミーのシリアル化を (おそらくバックグラウンド スレッドでも) 実行できる時間をアプリで見つけてください。ただし、これには少しコードの匂いがするため、負荷を強制するより良い方法があるかもしれませんが、それは常に機能する力ずくの方法です。

于 2012-04-10T13:47:54.583 に答える