我有一个处理大量数据的高性能应用程序.它在很短的时间内接收,分析和丢弃大量信息.这导致我正在尝试优化的大量对象流失,但它也会导致次要问题.当垃圾收集进入时它可能会导致一些长时间的延迟,因为它清理了一些东西(长的意思是10到100毫秒).99%的时间这是可以接受的,但对于大约1-2分钟的短暂时间窗口,我需要绝对确定垃圾收集不会导致延迟.我知道这些时间段何时会事先发生,我只需要一种方法来确保在此期间不会发生垃圾收集.该应用程序使用.NET 4.0 Framework以C#编写,如果重要,则使用托管代码和非托管代码.
我的问题是;
注意 - 这个系统相当复杂,有很多不同的组件.我希望避免采用我必须在程序的每个类上实现自定义IDisposable接口的方法.
我有两个实体,我在EF 5 Code First中创建了一个相当标准的多对多关系.这些是Service和ServiceItem.Service实体包含ServiceItems的集合,ServiceItem包含Services集合.我可以创建,更改和保存数据到任一实体基本属性,没有任何问题.当我尝试将ServiceItem添加到服务或服务到ServiceItem时,它似乎工作,但没有保存任何内容.我已经验证了所有正确的数据库表都已创建,包括带有交叉键的ServiceItemService表.添加项目时,数据库ServiceItemService表未获取任何条目.没有错误,其他一切似乎都很完美.
我有点难过,可以使用一些帮助.以下是课程.
服务类;
public class Service
{
//Default constructor
public Service()
{
//Defaults
IsActive = true;
ServicePeriod = ServicePeriodType.Monthly;
ServicePeriodDays = 0;
ServiceItems = new Collection<ServiceItem>();
}
public int ServiceID { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public ICollection<ServiceItem> ServiceItems { get; set; }
public string TermsOfService { get; set; }
public ServicePeriodType ServicePeriod { get; set; }
public int ServicePeriodDays { get; set; }
public …Run Code Online (Sandbox Code Playgroud) 我有一个我试图安装的本地Nuget包.一切运行正常,没有我能看到的特定错误,但是安装中需要完成的大约一半的任务似乎没有发生或做任何事情.
我有NuGet Package Explorer,如果我知道从哪里开始,我可以修复安装.NuGet在安装时是否在某个地方创建了一个错误日志文件,我会在哪里找到它?
谢谢您的帮助.道格
我正在使用ASP.NET MVC 4作为网站.该网站管理我们小组的在线活动,并为注册用户提供在线资料,网络活动档案和教学视频的访问权限.我已经建立了一个上传和管理视频的系统,现在我需要构建Controller Actions来将视频文件发送到网页.我们正在使用VideoJS作为观众,我现在非常满意.我们需要保持文件的安全性,以便让文件位于Web服务器上的某个位置似乎对我们不起作用.
我的主要问题是将文件返回给查看器的好方法是什么?我习惯使用ActionResult和JSONResult类,但它们似乎不适合视频文件.文件可能非常大,有时甚至高达GB或更高.我看到了MVC FileResult类,FileStreamResult类和FileContentResult类.在构建时,我应该使用哪一个以及我应该考虑哪些其他考虑因素?
我感谢您的帮助.
道格
我在使用json.net序列化数据时遇到了一个奇怪的问题.主要是,我试图将传出的json中的"Key"和"Value"名称重命名为更具描述性的名称.具体来说,我希望将与IRequest相关的"Key"称为"Request",将IQuoteTimeSeries的"Value"称为"DataSeries"
请注意,这不会反序列化.它仅用于网页上的数据分析.
我正在序列化的数据存储库对象是一个Dictionary<IRequest, IQuoteTimeSeries>对象.IRequest表示对数据的特定请求,IQuoteTimeSeries是包含返回数据的对象SortedDictionary<DateTime, IQuote>.这是按时间戳排序的一系列数据.在这个例子中,为了简洁起见,我只在TimeSeries中有一个项目,但在大多数情况下会有很多项目.
所有内容都需要组织在一起,序列化并发送给JavaScript使用.
这是这些对象的基本代码;
[JsonArray]
public class QuoteRepository : Dictionary<IRequest, IQuoteTimeSeries>, IQuoteRepository
{
public QuoteRepository() { }
public void AddRequest(IRequest request)
{
if (!this.ContainsKey(request))
{
IQuoteTimeSeries tSeries = new QuoteTimeSeries(request);
this.Add(request, tSeries);
}
}
public void AddQuote(IRequest request, IQuote quote)
{
if (!this.ContainsKey(request))
{
QuoteTimeSeries tSeries = new QuoteTimeSeries(request);
this.Add(request, tSeries);
}
this[request].AddQuote(quote);
}
IEnumerator<IQuoteTimeSeries> Enumerable<IQuoteTimeSeries>.GetEnumerator()
{
return this.Values.GetEnumerator();
}
}
Run Code Online (Sandbox Code Playgroud)
报价时间序列看起来像这样;
[JsonArray]
public class QuoteTimeSeries: SortedDictionary<DateTime, IQuote>, IQuoteTimeSeries
{
public QuoteTimeSeries(IRequest request) …Run Code Online (Sandbox Code Playgroud) c# ×2
actionresult ×1
asp.net-mvc ×1
json ×1
json.net ×1
logging ×1
many-to-many ×1
nuget ×1
performance ×1