我有以下类型:
and ListInfo() =
let mutable count = 0
// This is a mutable option because we can't have an infinite data structure.
let mutable lInfo : Option<ListInfo> = None
let dInfo = new DictInfo()
let bInfo = new BaseInfo()
member this.BaseInfo = bInfo
member this.DictInfo = dInfo
member this.LInfo
with get() = lInfo
and set(value) = lInfo <- Some(value)
member this.Count
with get() = count
and set(value) = count <- value
Run Code Online (Sandbox Code Playgroud)
递归"列表信息"是一个选项.有一个或没有.我需要从C#中使用它,但我得到错误.这是一个示例用法:
if (FSharpOption<Types.ListInfo>.get_IsSome(listInfo.LInfo))
{
Types.ListInfo subListInfo = listInfo.LInfo.Value; …
Run Code Online (Sandbox Code Playgroud) 我用两个资源创建了一个简单的REST服务.第一个资源很好用,只返回MediaType.TEXT_PLAIN.
对于第二个资源,我想尝试将POJO映射到Java并遵循以下示例:
我的testbean定义为:
@XmlRootElement
public class Company {
public String name;
public String symbol;
public String country;
public Company(String name, String symbol,
String country) {
this.name = name;
this.symbol = symbol;
this.country = country;
}
public String getName() {
return name;
}
public String getSymbol() {
return symbol;
}
public String getCountry() {
return country;
}
}
Run Code Online (Sandbox Code Playgroud)
资源也是微不足道的:
@Path("company/{name}")
public class CompanyResource {
private Map<String, Company> companies;
public CompanyResource() {
companies = new LinkedHashMap<String, Company>();
companies.put("Apple", new Company("Apple Inc.", …
Run Code Online (Sandbox Code Playgroud) 该文件说,时间戳支持以下转换:
•浮点数字类型:以小数精度解释为UNIX时间戳,以秒为单位
首先,我不确定如何解释这一点.如果我有时间戳2013-01-01 12:00:00.423,我可以将其转换为保留毫秒数的数字类型吗?因为那就是我想要的.
更一般地说,我需要在诸如的时间戳之间进行比较
select maxts - mints as latency from mytable
Run Code Online (Sandbox Code Playgroud)
其中maxts和薄荷糖是时间戳列.目前,这让我NullPointerException
使用Hive 0.11.0.如果我做的话,我可以执行查询
select unix_timestamp(maxts) - unix_timestamp(mints) as latency from mytable
Run Code Online (Sandbox Code Playgroud)
但这仅适用于秒,而不是毫秒精度.
任何帮助赞赏.如果您需要其他信息,请告诉我.
这些事情显然需要仔细检查和提供代码,以便彻底分析并提供好的建议.然而,这并不总是可行的,我希望根据我在下面提供的信息为我提供好的提示.
我有一个服务器应用程序,它使用侦听器线程来侦听传入的数据.传入的数据被解释为特定于应用程序的消息,然后这些消息会引发事件.
到目前为止,我对事情的完成方式并没有任何控制权.
因为这是遗留应用程序,所以这些事件之前由同一个侦听器线程(主要是单线程应用程序)处理.事件被发送到黑盒子,然后输出应该写入磁盘的结果.
为了提高吞吐量,我想使用线程池来处理事件.我们的想法是,每次创建事件时,侦听器线程都可以生成新任务,并且线程将负责黑盒调用.最后,我有一个后台线程执行写入磁盘.
只需使用以前的设置和后台编写器,一切正常,吞吐量比以前增加了1.6倍.
当我添加线程池但性能下降.一开始,一切似乎都运行顺利,但过了一段时间,一切都很慢,最后我得到OutOfMemoryExceptions.奇怪的是,当我每次将一个任务添加到池中时打印活动线程的数量(以及有关排队多少任务的信息等等),看起来好像线程池没有问题跟上producer(监听器线程).
使用top -H检查CPU使用情况,它在开始时非常均匀分布,但最后工作线程几乎没有活动,只有监听器线程处于活动状态.但它似乎没有提交更多任务......
任何人都可以假设这些症状的原因吗?您是否认为遗留代码(我无法控制)中的某些内容更可能在添加多个线程时变坏?内存不足问题应该是因为某个队列某处变得太大,但由于线程池几乎从不包含排队任务,所以不可能.
欢迎任何想法.特别是关于如何更有效地诊断这种情况的想法.如何更好地了解我的线程在做什么等等.
谢谢.