- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
TLDR:为什么在页面更新之前有一个暂停,导致图表中出现一个小的白色间隙?
我最近发现了立体主义并被震撼了。所以我决定我的树莓派可以使用一些监控。我对 javascript 和所有与网络相关的东西也是新手,所以请多多包涵。
我自己的数据源由一个 redis 数据库和 webdis 组成,我用它来获取 json 格式的数据。在 Redis 中,我每秒存储时间戳和值 (timestamp:value) 的组合,在我的示例中使用的物理内存。
所以当我这样查询 webdis 时:
http://192.168.0.3:7379/zrangebyscore/used_phymem/1382269532/1382269532
我得到这个:{"zrangebyscore":["435265536:1382269532"]}
所以这部分工作得很好。在 stackoverflow 上的另一个答案中,Mike Bostock 解释了 Cubism 如何查询数据:Using Other Data Sources for cubism.js .简而言之,初始查询 1440 个数据点(整个窗口),之后仅查询最后 7 个数据点。我在我的代码中记录了 Cubism 的行为方式:
http://192.168.0.3:7379/zrangebyscore/used_phymem/1382268969/1382270409 1440 values
http://192.168.0.3:7379/zrangebyscore/used_phymem/1382270398/1382270410 12 values
http://192.168.0.3:7379/zrangebyscore/used_phymem/1382270398/1382270411 13 values
http://192.168.0.3:7379/zrangebyscore/used_phymem/1382270398/1382270412 14 values
http://192.168.0.3:7379/zrangebyscore/used_phymem/1382270398/1382270413 15 values
http://192.168.0.3:7379/zrangebyscore/used_phymem/1382270398/1382270414 16 values
http://192.168.0.3:7379/zrangebyscore/used_phymem/1382270408/1382270415 7 values
如您所见,初始查询有 1440 个值。但是在那之后,在提到的 7 个数据点的查询开始之前,有一些我不明白的查询。为什么 Cubism 查询 12、13、14、15、16 个值,所有值都具有相同的开始时间?
结果如下所示(注意右边的空隙):
我不明白为什么会有那个丢失数据的窗口...
这是我查询数据的函数:
function getData(metric) {
return context.metric(function(start, stop, step, callback) {
var values = [];
start = +start, stop = +stop;
d3.json("http://192.168.0.3:7379/zrangebyscore/"+metric+"/"+(start/1000) +"/"+ (stop/1000), function(json_data) {
entries = json_data.zrangebyscore;
entries.forEach(function(e) {
values.push(scale(e.split(":")[0]));
});
callback(null, values = values.slice(-context.size()));
});
}, name);
}
这是剩余的代码:
var metrics = [ "used_phymem" ];
var context = cubism.context()
.serverDelay(10 * 1000)
.step(1 * 1000)
.size(1440);
var scale = d3.scale.linear()
.domain([0, 459505664])
.range([10, 100]);
d3.select("#demo").selectAll(".axis")
.data(["top", "bottom"])
.enter().append("div")
.attr("class", function(d) { return d + " axis"; })
.each(function(d) { d3.select(this).call(context.axis().ticks(12).orient(d)); });
d3.select("body").append("div")
.attr("class", "rule")
.call(context.rule());
d3.select("body").selectAll(".horizon")
.data(metrics.map(getData))
.enter().insert("div", ".bottom")
.attr("class", "horizon")
.call(context.horizon()
.extent([0, 100]));
context.on("focus", function(i) {
d3.selectAll(".value").style("right", i == null ? null : context.size() - i + "px");
});
更新:
我在 jsbin 上添加了一个使用随机数而不是我的 json 数据的示例:
当页面加载时,图表充满了值(正如预期的那样),然后一秒钟没有任何反应。之后图表每秒更新一次,但在初始数据和其余数据之间存在差距。
最佳答案
问题的原因似乎是服务器上的延迟/时钟偏差。如果添加 1 秒的客户端延迟,一切正常(参见 http://jsbin.com/iYuceku/1/edit)。
关于javascript - Cubism 自己的数据源问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19470380/
我试图通过预准备语句使用同一连接执行多个查询,但无法完全实现! 代码片段: public class PostPrReqDaoImpl implements PostPrReqDaoInterface
我目前有一个 2 列宽的 DataGridView,第一列是 DataGridViewTextBoxColumn,第二列是 DataGridViewComboBoxColumn。我还有一个预生成的通用
当我在一台机器上运行以下代码时,我得到了 org.apache.tomcat.dbcp.dbcp.BasicDataSource 的 tomcat 实现,当我在另一台机器上运行它时,我得到了 org.
不确定这是否可行,但这是我的设置。 我有一台带有双启动功能的笔记本电脑。 一个一个分区我有 WinXP 和 MSAccess 2000在另一个分区上,Ubuntu 10.04,带有 apache we
我试过: czmlDataSource.load(czmlurl).then(function(){ viewer.dataSource
我有一个 TableView 和一个数组源。当我在 viewDidLoad 方法中初始化数组时,tableview 显示数组中的数据。当我从 Internet 上的 XML 数据的 URL 填充数组时
我对 DataSource 和 SessionFactory 之间的区别感到困惑。 我认为SessionFactory是一个用于检索 session 的管理器(我猜这实际上是与数据库的连接)。 Dat
我想存储大量(~数千)个字符串并能够使用通配符执行匹配。 例如,这里是一个示例内容: Folder1 文件夹 1/Folder2 Folder1/* Folder1/Folder2/Folder3 文
我有一个 DataGridView 和一个从 SQL 表填充的一些对象的列表。我曾使用两种方法将列表绑定(bind)到网格。 1.直接使用列表到数据源 grdSomeList.DataSource =
我正在尝试在 DataGridView 中设置一些内容。看起来这应该很简单,但我遇到了麻烦。我想显示三列: 代码ID 代号 带有 TypeName 的 DisplayMember 和 TypeID 的
在我的 Config.groovy我把线: grails.config.locations = [ "classpath:app-config.properties"] 我在哪里设置数据源的定义。文件
为了这个问题,假设我有一个包含各种酒类的 Excel 数据源电子表格。 (Cell A) | (Cell B) Bacardi | Rum Smirnoff | Vodka Another Vodka
由于我经常使用第三方 API,我认为创建一些 Magento 模块以实现轻松连接和查询它们会很有帮助。理想情况下,您可以像这样查询 API... $data = Mage::getModel( 'to
将后台线程频繁更新的数据源与 GUI 主线程同步的最佳方法是什么? 我应该在每个方法调用周围放置一个 pthread 互斥体吗?这对我来说似乎也很重。 编辑:我正在寻找 10.5 解决方案 最佳答案
经过几个小时的点击和试用,在查看各种帖子寻求帮助后,这段代码终于起作用了。但我希望有人帮助我理解函数(i,dat),这意味着什么?下面是我的完整代码 - function get_assignedta
我使用的是 Wildfly 10.1 版本,有两个数据源,如下所示, jdbc:mysql://${dbhostn
我正在学习数据源,我想我开始理解它,但我不明白这一段。 据我所知,MySQL 和 PostgreSQL 等数据库供应商编写了自己的不同 DataSource 接口(interface)的实现。现在,这
我有一个关于 TomEE 和使用 tomee.xml 中指定的数据源的奇怪问题。值得注意的是,我使用的是 Netbeans、TomEE 和 MySQL。在 Ubuntu 13.04(Xubuntu 最
WWDC 2019 确实充满了 iOS 的新内容以及 TableViews 和 CollectionView 的新数据源,即 UITableViewDiffableDataSource . 我已成功将
我在独立模式下运行 jboss 并将 standalone.xml 中的数据源设置为以下内容: jdbc:sqlserver://myip:1433;databaseNam
我是一名优秀的程序员,十分优秀!