2

パフォーマンスと可読性を考慮して、iPhone アプリケーションで使用するために日付を JSON でどのようにエンコードする必要がありますか? 理想的なエンコーディングは NSDate で簡単に動作するだけでなく、Web ベースのバックエンドでの使用が将来保証されます (つまり、iPhone 専用の API を使用しない、クロスプラットフォームのもの)。ここに私が検討しているいくつかのエンコーディングがあります:

# UNIX Epoc based integer encoding
{"Date":123456789}

# ISO 8601 String format
{"Date":"2011-03-25T20:00Z"}

何千もの日付が処理される場合、ISO 8601 文字列の解析はパフォーマンスに大きな影響を与えますか? Epoc と比較した場合、パフォーマンス ヒットが低すぎて問題になりませんか? 上記の要件を満たすエンコーディングが不足していませんか?

4

1 に答える 1

2

サーバー スタックを制御している場合は、常に Unix エポック ベースのエンコーディングを使用してきました。私のユースケースでは、長所が短所を上回っています

エポックプロ

  • より高速です (大量の日付を扱う場合は問題になる可能性があります)。
  • 必要なコードが少ない
  • ほぼすべての日付/時刻ライブラリ/言語でサポートされています

エポックの短所

  • 人間が読めない
  • 偽の入力 (数値である限り) でも有効な日付が得られる可能性があります

ISOのプロ

  • 非常に読みやすい
  • 偽の入力 (不正な形式) では、有効な日付が得られない可能性があります

ISOの短所

  • より多くのバイトが必要
  • 独自の Cocoa 実装を作成/検索する必要があります (見つからない場合はお知らせください。カテゴリがどこかに転がっています)

ISO の解析は難しくありませんが、独自の実装については自分で確認する必要があります。Cocoa には最速の文字列パーサーがありません。私はそれが著しく遅くなると信じなければなりません(おそらく2倍以上)。

于 2011-03-27T04:28:24.843 に答える