我正在编写一个金融C#应用程序,它接收来自网络的消息,根据消息类型将它们转换为不同的对象,最后将应用程序业务逻辑应用于它们.
关键是在应用业务逻辑之后,我非常确定我将永远不再需要这个实例.我不想等待垃圾收集器释放它们,而是明确地"删除"它们.
有没有更好的方法在C#中这样做,我应该使用一个对象池来重用总是相同的实例集,还是有更好的策略.
目标是避免垃圾收集在时间关键过程中使用任何CPU.
我想知道推荐使用的音频库是什么?
我正在尝试制作一个有助于调整乐器的小程序.(钢琴,吉他等).我读过有关ALSA和Marsyas音频库的文章.
我想这个想法是从麦克风中采样数据,对5-10ms的块进行分析(从我读过的内容).然后执行FFT以确定哪个频率包含最大峰值.
我现在开始使用Pubsubhubbub(以及所有关于实时的东西),但我在使用Subscriber选项时遇到了麻烦.
我正在尝试用PHP开发一个webapp来:
我验证在PHP中存在一个库到订阅服务器(在Git中),但使用这个库不能使订阅工作(得到409错误!).
我怎样才能做到这一点?
只是想知道是否有人在Java Real-Time系统上运行过Scala app或web-app?
我假设因为scala与常规JVM字节码兼容,那么在Sun Java Real-Time System等实时JVM上运行它不应该花费太多精力吗?
编辑:根据VirtualMachine/cloud上的Sun Java Realtime System,我设法在VMWare Workstation 6.5上的SuseLinuxEnterprise Realtime Extension上使用Sun Java Realtime系统运行Scala的Lift框架
Web应用程序不会像在VMWare上运行那样实时运行,但它是一个开始.
我正在处理大量的时间序列.这些时间序列基本上是每10分钟一次的网络测量,其中一些是周期性的(即带宽),而另一些则不是(即路由流量).
我想要一个简单的算法来进行在线"异常值检测".基本上,我想在内存(或在磁盘上)保存每个时间序列的整个历史数据,并且我想要检测实时场景中的任何异常值(每次捕获新样本时).实现这些结果的最佳方法是什么?
我目前正在使用移动平均线来消除一些噪音,但接下来是什么?简单的事情,如标准偏差,疯狂,...对整个数据集不能很好地工作(我不能假设时间序列是静止的),我想要一些更"准确"的东西,理想情况下是一个黑盒子,如:
double outlier_detection(double* vector, double value);
Run Code Online (Sandbox Code Playgroud)
其中vector是包含历史数据的double数组,返回值是新样本"value"的异常分数.
我听说过具有严格延迟要求的Java程序,其中"新"指令永远不会 - 或者很少使用(因为没有新的=>没有对象 - >没有GC =>改进的延迟)...而是处理所有业务逻辑使用原语.
我无法在网上找到这种技术的参考资料......任何关于讨论这种技术或代码片段的网页的链接都将非常感激.
我开始学习一些关于大数据的东西,主要关注预测分析,为此我想要实现一个案例研究:
我有一个服务器健康信息的数据集,每5秒轮询一次.我想显示检索到的数据,但更重要的是:我想运行先前构建的机器学习模型并显示结果(关于服务器崩溃的警报).
机器学习模型将由机器学习专家构建,因此完全超出范围.我的工作是将机器学习模型集成到运行模型的平台中,并在一个漂亮的仪表板中显示结果.
我的问题是这个系统的"全局"架构:我看到所有的部分已经存在(cloudera + mahout)但是我缺少一个简单的集成解决方案来满足我的所有需求而且我不相信艺术状态是做一些自定义软件......
那么,任何人都可以对这样的生产系统有所了解(用预测分析显示数据)吗?这个参考架构?教程/文档?
笔记:
我调查了一些相关的技术:cloudera/hadoop,pentaho,mahout和weka.我知道Pentaho能够存储大数据并对该数据进行特殊的Weka分析.使用cloudera和Impala,数据专家也可以运行即席查询并分析数据,但这不是我的目标.我希望我的系统运行ML模型,并在检索到的数据旁边的漂亮仪表板中显示结果.我正在寻找一个已经允许这种用法而不是自定义构建的平台.
我专注于Pentaho,因为它似乎有一个很好的机器学习集成,但我读到的每个教程更多的是关于"ad-hoc"ML分析而不是实时.任何关于该主题的教程都将受到欢迎.
我不介意开源或商业解决方案(试用)
根据具体情况,这可能不是大数据:更多的"传统"解决方案也受到欢迎.
这里的实时也是一个广义的术语:如果ML模型具有良好的性能,每5秒运行一次就足够了.
ML模型是静态的(不是实时更新或改变其行为)
我不是在为我的例子寻找一个定制的应用程序,因为我的重点是全局:具有预测分析通用平台的大数据.
我注意到,java.util.HashMap当我在高性能系统上使用GC时会产生垃圾,它基本上是从网络读取的选择器.是否有替代java.util.HashMap(即,甚至不需要实现java.util.Map,换句话说,它可以有自己的API),我可以使用,不会留下任何垃圾?
GARBAGE =超出范围的对象,必须由GC收集.
对于@ durron597:
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
while(true) {
map.put("foo1", "bah1");
map.put("foo2", "bah2");
map.remove("foo1");
Iterator<String> iter = map.keySet().iterator();
while(iter.hasNext()) {
iter.next();
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在使用-verbose:gc运行它,看看会发生什么...... :)
好吧,我继续使用我的Phonegap应用程序开发处于两难境地:对于实时事件通知,我应该使用Azure Notification Hub还是SignalR?
据我了解,SignalR通过使用Web套接字适用于实时Web应用程序.而通知中心可以轻松地跨多个平台发送推送通知.为了便于回复,让我解释一下我目前拥有的结构以及我的应用程序应该做什么.
应用程序:它基本上是一个用户可以创建组并邀请其他用户的应用程序.用户还可以使组"在线",以便其他用户可以"输入"该组.当该群组在线且用户已进入时,他们可以发送问题,交换消息等.
需求:当用户在组中提问或进入/离开组时,其他用户需要在应用屏幕中看到新用户.我可以在服务器上进行轮询以检查并根据更新UI,但这是现代人不允许的.我对这个主题的搜索引出了两件事:SignalR和NotificationHub.
当前架构:客户端 - >带有backbone.js的PhoneGap应用程序.后端 - >带有实体框架和Azure Sql Server的Asp.NET Web API.
我已经考虑过使用通知集线器和标签了.例如,当用户进入在线组时,它向服务器发送请求以注册"grouplisten:{groupId}"标签.然后,服务器将标记注册到用户的设备,并向标记为"grouplisten:{groupId}"的所有其他设备发出通知,以便其他用户使用最近加入的用户更新UI.此外,当用户离开组时,它向服务器发送请求以删除"grouplisten:{groupId}"标签,并且还通知具有"grouplisten:{groupId}"的设备.但是通过这个简单的例子,看起来这样会变得无法管理.
我正在阅读一篇关于Real-Time Concurrent C的期刊文章,它在摘要中提到(所以你们任何人都可以通过该链接看到上下文)"并发C,是C(和C++的并行超集) )".
现在我知道超集是什么,但在引用编程语言时,它们是指"并行超集"是什么意思?