小编Uns*_*ced的帖子

图(图)算法

有没有人有一个很好的算法来计算轴最小值和最大值?

在为给定的一组数据项创建图表时,我希望能够给出算法:

  • 集合中的最大值(y)
  • 集合中的最小(y)值
  • 轴上出现的刻度线数量
  • 必须显示为勾号的可选值(例如,显示+ ve和-ve值时为零)

算法应该返回

  • 轴的最大值
  • 最小轴值(尽管可以从最大值,间隔大小和刻度数推断出来)
  • 间隔大小

刻度应该是规则的间隔应该是"合理的"尺寸(例如1,3,5,甚至可能是2.5,但不是更多的sig figs).

可选值的存在将使此偏斜,但如果没有该值,则最大项目应出现在前两个刻度线之间,最低值位于底部两个之间.

这是一个与语言无关的问题,但是如果有一个C#/.NET库,那将会粉碎;)

algorithm charts graph

5
推荐指数
1
解决办法
5010
查看次数

Bloomberg API请求超时

设置了ReferenceDataRequest后,我将它发送到EventQueue

Service refdata = _session.GetService("//blp/refdata");
Request request = refdata.CreateRequest("ReferenceDataRequest");
// append the appropriate symbol and field data to the request
EventQueue eventQueue = new EventQueue();
Guid guid = Guid.NewGuid();
CorrelationID id = new CorrelationID(guid);
_session.SendRequest(request, eventQueue, id);
long _eventWaitTimeout = 60000;
myEvent = eventQueue.NextEvent(_eventWaitTimeout);
Run Code Online (Sandbox Code Playgroud)

通常情况下我可以从队列中获取消息,但我现在遇到的情况是,如果我在应用程序的同一次运行中(通常在第十个左右)发出大量请求,我会看到一个TIMEOUTEventType

if (myEvent.Type == Event.EventType.TIMEOUT)
    throw new Exception("Timed Out - need to rethink this strategy");
else
    msg = myEvent.GetMessages().First();
Run Code Online (Sandbox Code Playgroud)

这些是在同一个线程上进行的,但是我假设我正在消耗并且不释放的某个地方有某些东西.

有人有任何线索或建议吗?

关于SO对BLP的API的引用并不多,但希望我们可以开始纠正这种情况.

c# bloomberg blpapi eventqueue

5
推荐指数
2
解决办法
9955
查看次数

如何最大化大对象堆中最大的连续内存块

情况是我正在对远程服务器进行WCF调用,该服务器将XML文档作为字符串返回.

大多数时候这个返回值是几K,有时几十K,非常偶尔几百K,但很少可能是几兆(第一个问题是我无法知道).

正是这些罕见的场合引起了悲伤.我得到一个开始的堆栈跟踪:

System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
   at System.Xml.BufferBuilder.AddBuffer()
   at System.Xml.BufferBuilder.AppendHelper(Char* pSource, Int32 count)
   at System.Xml.BufferBuilder.Append(Char[] value, Int32 start, Int32 count)
   at System.Xml.XmlTextReaderImpl.ParseText()
   at System.Xml.XmlTextReaderImpl.ParseElementContent()
   at System.Xml.XmlTextReaderImpl.Read()
   at System.Xml.XmlTextReader.Read()
   at System.Xml.XmlReader.ReadElementString()
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderMDRQuery.Read2_getMarketDataResponse()
   at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer2.Deserialize(XmlSerializationReader reader)
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
Run Code Online (Sandbox Code Playgroud)

我已经阅读了,因为大对象堆刚刚变得过于分散,所以即使在调用之前快速检查StringBuilder.EnsureCapacity只会导致OutOfMemoryException被提前抛出(因为我猜测需要什么) ,它可能实际上并不需要那么多,所以我的检查引起的问题比它解决的问题多得多.有些意见认为我无能为力.

我问过自己的一些问题:

  • 使用更少的内存 - 你检查了泄漏?是.内存使用率上下波动,但没有基本增长可以保证这种情况发生.有些时候它失败了,它在之前的那个阶段取得了成功.
  • 转移较小的金额不是一个选项,这是我无法控制的第三方网络服务(或者至少需要很长时间才能解决,同时我还有问题)
  • 你能为卫生部做些什么来减少失败吗?......现在这是最富有成效的课程.这是一个32位的过程(它必须出于各种政治,技术和无聊的原因),但通常有数百兆的免费(我们看到失败的最大数量的倍数).
  • 我们可以监控LOH吗?使用perfmon我可以跟踪堆的大小,但我认为没有办法监视最大可用的连续内存块. …

c# wcf stringbuilder out-of-memory

5
推荐指数
1
解决办法
2091
查看次数

将Log4Net RollingFileAppender设置为每周滚动一次

DatePattern字符串需要的东西的SimpleDateFormatter 会接受.

不幸的是,这意味着,开箱即用,这不包括能够将边界设置为周数.有一些方法可以在C#中获得这个值,但是我们可以扩展SimpleDateFormatter或提供不同的实现IDateFormatter并使用它(甚至在自定义中RollingFileAppender)并不明显.

那么我们怎样才能让Log4Net RollingFileAppender每周滚动一次?

.net c# log4net rollingfileappender

5
推荐指数
1
解决办法
3327
查看次数

Svn mergeinfo主演了修订版

我正在将分支上的修改合并到trunk(使用TortoiseSVN 1.7.10,Build 23359 - 64 Bit).

当我运行merge info命令时,例如

svn mergeinfo https://url/code/branches/project.2.5/@{2012-12-11} https://url/code/trunk -R --show-revs=eligible
Run Code Online (Sandbox Code Playgroud)

我找回了一个标有星星的修订版

r12345* 
Run Code Online (Sandbox Code Playgroud)

如果我检查trunk上的svn:mergeinfo属性,那个修订版号看起来好像是合并的,例如

/code/branches/project.2.5:10000-15000
Run Code Online (Sandbox Code Playgroud)

因此,如果我理解正确,该修订已合并,那为什么它仍然被认为是合格的

(对于上下文,我有一个日常任务,监视所有分支和报告,当他们中的任何一个有任何未完成的合并,所以我可以跟踪任何有可能与主干发散得太厉害的分支.我想知道我是否可以忽略此修订或是否需要特别注意.)

结果中的星号是什么意思?

svn merge

5
推荐指数
1
解决办法
1740
查看次数

缺少包会导致NuGet包还原失败

我们是NuGet的热心用户,无论是内部构建还是第三方软件包.

我们最近开始在一些构建项目中启用NuGet Package Restore选项,以减少我们提交源代码控制的二进制文件的数量,但我们遇到了一个问题.

我们看到Visual Studio需要很长时间才能启动,一旦它启动(可能需要半个多小时),后续构建同样耗费时间.在发生这种情况时,您可以看到许多子NuGet进程在进程资源管理器中出现和死亡.

我们发现如果packages.config文件中引用的软件包版本不能从任何已配置的软件包源获得(可能是内部软件包的旧版本,而且有人帮助我们清理了我们的本地软件包) ,似乎NuGet和Visual Studio进入某种无限(或至少是长期运行的)重试循环.

如果我们从命令行运行NuGet install命令,则会返回错误

>.nuget\NuGet.exe install project\packages.config -o packages
Unable to find version '1.0.0.1' of package 'my.internal.package'.
Run Code Online (Sandbox Code Playgroud)

但看起来Visual Studio/NuGet没有正确使用它.

  • NuGet会在任何地方记录其操作吗?
  • 我们可以限制NuGet还原重试次数或超时(可能在nuget.targets文件中吗?)
  • 看起来NuGet的语义版本没有被使用,因为在上面的场景中,1.0.0.2可以从repo中获得,是否可以启用它?

visual-studio-2010 nuget nuget-package

5
推荐指数
1
解决办法
2323
查看次数

Linq to SQL和Collection操作

我有一个字典,我想像SQL查询中的IN子句一样使用它.

我有一个Linq-To-SQL查询,我想使用此Dictionary的Keys来检查查询行中的字段.

例如

bool result = DataContext.Table.Any(res => MyDictionary.ContainsKey(res.field1)); 
Run Code Online (Sandbox Code Playgroud)

实际上这类似于

    exists(select * from Table where field1 in (select id from DictionaryKeys)) 
Run Code Online (Sandbox Code Playgroud)

这里DictionaryKeys将是一个扩张的钥匙到他们自己的表.

不幸的是我得到了

System.NotSupportedException was unhandled
Message="Method 'Boolean ContainsKey(System.String)' has no supported translation to SQL."
Source="System.Data.Linq"
Run Code Online (Sandbox Code Playgroud)

我理解错误,但我正在努力将问题考虑到另一个解决方案.

编辑:我正在连接到SQL 2005.看起来这是一个连接提供程序问题,因为Marc的建议转换为List对我不起作用.

有任何想法吗?

c# collections sql-server-2005 .net-3.5 linq-to-sql

3
推荐指数
1
解决办法
1651
查看次数

挑战TestFlight/iTunes Connect发布新的测试版

我在iTunes Connect中使用了新的测试版功能.我将一个版本(98)上传到iTunes Connect,设置了一些内部测试人员并下载了该版本.

现在我已经使用新版本(版本99)更新了版本,并且已经上传到iTunes Connect,但是我无法看到如何激发系统将这个新版本推送给用户及其TestFlight应用程序.

我在几个设备上设置了测试人员(包括我的开发人员ID以及另一个ID),我仍然只能看到build 98.

在iTunes Connect屏幕上,构建98被列为非活动状态(这是正确的,因为它已被构建99取代),但构建99仅显示"邀请测试者",但我邀请了所有我想邀请的人.

截图

它表示用户将"自动接收新版本",但需要多长时间?我希望它会立竿见影.有没有办法激发iTunes Connect发送更新通知,以便我的用户可以测试新版本?

itunesconnect testflight

3
推荐指数
1
解决办法
803
查看次数