【发布时间】:2017-10-18 14:21:18
【问题描述】:
使用来自 nuget 的最新 Google.Cloud.Logging.V2 包,1.0.0
我的日志发送函数:
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 包时也会出现此问题。
任何关于如何进一步缩小范围的建议将不胜感激。是否有任何可用于云日志记录包的源代码可以检查以找到内存泄漏的来源?
【问题讨论】:
标签: c# .net google-app-engine google-cloud-logging