1

nuget 1.0.0 の最新の Google.Cloud.Logging.V2 パッケージを使用する

ログを送信するための私の機能:

private static void WriteLogEntry(string message, Google.Cloud.Logging.Type.LogSeverity severity)
{
    string threadName = System.Threading.Thread.CurrentThread.Name;
    if (string.IsNullOrEmpty(threadName))
    {
        threadName = System.Threading.Thread.CurrentThread.ManagedThreadId.ToString();
    }

    LogEntry logEntry = new LogEntry
    {
        LogName = logName.ToString(),
        Severity = severity,
        TextPayload = string.Format("[{0}]: {1}", threadName, message)
    };

    CloudLogClient.WriteLogEntriesAsync(LogResource, Monitor, EntryLabels, new[] { logEntry });
}

この関数を使用して、40 スレッドから最大 50 ログ/秒/スレッドを送信するストレス テストを行いました。そのテストは、テストを無効にした場合と比較して、約 100MB/10 分の実行で大量のメモリ リークを起こします。

メモリ プロファイラとの差分は次のとおりです。 メモリ プロファイラー

この問題は、Google.Cloud.Logging.Log4Net パッケージを通過するときにも発生します。

これをさらに絞り込む方法についての提案をいただければ幸いです。メモリ リークの原因を調べるために検査できるクラウド ロギング パッケージのソース コードはありますか?

4

1 に答える 1