protobufライブラリを使用して、高価なクエリの永続的なグローバルキャッシングを開始しました。私はそれをMSSQLのテキストフィールドとMSAccessのメモフィールドに格納しているので、次にSqliteに拡張する予定です。そうでなければバイナリフィールドを使用することを嫌っています。私は文字列操作をよりよくクロスdbバイナリよりも。 ToBase64Stringの手順は、protobuf(サイズ、速度、メモリ使用量)のさまざまな利点を取り消すようです。protobuf-netストリームをbase64に変換すると、protobufのperfとsizeの利点が失われますか?
public void StoreInDb(T dataPoints, string parameters, string queryName)
{
//Store in cache
MemoryStream stream = new MemoryStream();
Serializer.Serialize(stream, dataPoints);
byte[] data = new byte[stream.Length];
stream.Seek(0, SeekOrigin.Begin);
stream.Read(data, 0, data.Length);
string output = Convert.ToBase64String(data); //Meh, not pretty
using (CacheInsert inserter = new CacheInsert())
{
inserter.Insert(parameters, output, DateTime.Now.AddDays(1), queryName);
}
}
これをより速く安価に行う方法についてのご意見はありますか?
もう1つの重要な質問は、おそらく、「比較した...」ですか? –