小编qba*_*ler的帖子

在Node.js服务器和浏览器之间共享二进制缓冲区

如何在node.js和包含二进制数据的浏览器之间共享缓冲区存在问题.我很高兴Socket.io作为传输层,但问题是没有为浏览器移植Buffer类.不管怎样我都找不到

我也遇到过binary.js,我想知道是否有一种很好的方法来组合它们将socket.io作为传输层,将Binary.js作为数据媒体.我也看到了这个问题,这是一个主题,但并没有真正解决问题.

我知道socket.io添加了二进制支持,但我没有找到关于该主题的任何文档.

更新:

似乎binary.js不是解决方案.我想要的基本要求是与浏览器共享Buffer在节点中具有的相同功能.

我的需求包括两件事:

  1. 在服务器和浏览器中以相同的方式处理缓冲区.

  2. 支持二进制数据.

我可能会使用Array Buffer.

编辑:由于node.js在V8上运行,因此您可以使用ArrayBuffer.似乎问题已经解决了.然而,据我所知,节点人员认为创建一个缓冲模块并在他们创建的C绑定中管理它是一个好主意(来自Ryan Dahl的讲话).我认为这与如何通过网络进行缓冲有关.这意味着ArrayBuffer仍然不是在服务器和浏览器之间共享的良好数据媒体.

javascript node.js socket.io

18
推荐指数
1
解决办法
3106
查看次数

Docker:在内存文件系统中

我有一个docker容器,可以对磁盘进行大量的读/写操作.我想测试当我的整个docker文件系统在内存中时会发生什么.我在这里看到一些答案,说这不会是真正的性能提升,但这是用于测试.

我想测试的理想解决方案是共享每个图像的公共部分,并在需要时复制到您的存储空间.

在运行时创建的每个容器文件也应该在内存中并分开.它在空闲时间内不应超过5GB fs,在处理时间内不应超过7GB.

简单的解决方案将复制每个容器的所有共享文件(甚至是您从未使用过的操作系统的那些部分).

filesystems in-memory docker

13
推荐指数
1
解决办法
1万
查看次数

将VC++ 6/Win32项目转换为VS2010 C++/Win32项目:已知问题

您是否知道在将VC++ 6/Win32项目转换为VS2010 C++/Win32项目类型期间突出显示已知或可能的问题的任何资源?我对各种问题感兴趣:

  • 编译器选项兼容性
  • 编译时问题
  • 链接时间问题
  • 运行时问题
  • MFC问题

否则,如果您已经执行了那种迁移,那么您遇到了哪些问题?

谢谢

c++ migration winapi mfc visual-studio-2010

10
推荐指数
2
解决办法
1万
查看次数

Java分布式系统

我正在开始我的最后一年计算机科学项目,我正在努力弄清楚我的第一步.有关更多详细信息,您可以转到项目页面.

背景:因为我在分布式系统方面经验很少,所以基本上我应该如何面对这样的挑战.我想出的是系统应该如下工作:

客户端发送一个文件或一组包含要处理的代码的文件.该代码将实现由我编写的分布式算法接口,即特定类.服务器将从类中创建一个对象.该对象将负责运行算法.服务器将结果返回给客户端.(我实际上后来读到了RMI并发现它非常相似).

发送文件是基本的 - 常见的网络I/O. 真正的问题是对象创建并在运行时将其用作预定义接口.

问题:

  1. 我提出的挑战听起来像是一个反思挑战,这是正确的吗?
  2. 您有关于如何实施它的任何第一个提示吗?

寻找一些分布式系统java技术我遇到过RMI,TRMI,LINDA,CORBA,JINI等等.RMI听起来最吸引人,因为它与我收集的解决方案非常相似,但它也很老.

  1. 您认为哪些库可以帮助我完成这项任务?请记住,我是一名计算机科学专业的学生,​​因此开箱即用的解决方案不会与我的教授保持一致.
  2. RMI已经老了,还有更好的解决方案吗?
  3. 关于TRMI的任何综合教程?

如果你发现我的逻辑有些错误,请纠正它.

如果您有关于该主题的更多提示,您认为应该讨论,请随时与我联系.

java distributed-computing

8
推荐指数
2
解决办法
9860
查看次数

从所有git历史记录中删除文件

基于这篇文章,我创建了一个小脚本,它应该删除整个git仓库中所有出现的文件,所有分支,标签和提交.剧本:

#!/usr/bin/env node
var child_process = require('child_process');
if (process.argv.length < 3){
  console.error('USAGE: git-forget path/to/file')
  process.exit(1);
}
var path = process.argv[2];

var phase = 0;
function printLog(error, stdout, stderr) {
  if (error) {
    console.error('ERROR' + error);
  }
  console.log(++phase);
  console.log(stdout);
}

child_process.execSync('git filter-branch --force --index-filter \'git rm -f --cached --ignore-unmatch  '+ path +'\' --prune-empty --tag-name-filter cat -- --all');
child_process.execSync('echo "' + path + '" >> .gitignore', printLog);
child_process.execSync('git add .gitignore');
child_process.execSync('git commit -m "Add ' + path +' to .gitignore"',printLog) …
Run Code Online (Sandbox Code Playgroud)

git node.js git-rewrite-history

7
推荐指数
1
解决办法
306
查看次数

在java中寻找"做一切缓冲"决定与Netty合作

一些背景:

我正在研究一些需要获取数据的Java包,将其划分并在线分发给许多服务器.根据用户代码(使用我的包的人),我将知道使用哪种缓冲区.我已经看到了Netty项目,其中包含一些有趣的概念以及网站中提出的其他解决方案,但并不完全是我正在寻找的内容.我想我可以实现我的要求,但我更喜欢重用.

实际问题:字节缓冲要求

从界面单独实现.两个实现之间的变化.

固定尺寸:

  1. 直接内存使用.
  2. 分发时零复制IO.

增长规模

  1. 可以长到一定的尺寸.
  2. 在重新分配和使用的内存量之间保持平衡.

更新1:由于许多其他好处,决定使用Netty项目库.

我想提供一些关于我的系统的细节.我需要在整个服务器网络中分发大量数据.关于缓冲区大小的知识非常少.有时它可以是固定大小,有时它可以是未知大小模式.我希望能够建立一个享受两个世界利益的机制.当我收到最终缓冲区进行检查时,我确实有一个已定义的事件.

我知道缓冲区在直接映射到内存时可以表现得更好.Netty为我提供了这个,但是我不能让这个缓冲区增长.我有动态缓冲区可以增长-Netty也提供.

几个问题:

  1. 如果它被更改,我应该将缓冲区从动态​​复制到直接吗?有没有办法切换模式?

  2. 您如何看待实现一个包含ChannleBuffers数组的类并公开相同的接口(如ChannleBuffer),同时包含"内部"缓冲区数组,根据需要分配新的直接内存.

  3. 你有其他解决方案吗?

java buffer nio

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

Node.js如何实现多态?

我正在尝试使用node.js和其他相关技术来实现应用程序.从java土地多态性开始但是很自然,但对于经典程序员节点的工作方式不同.

应用程序将在用户提供的运行时加载新代码.为了让主要核心使用这个代码"我们"需要就某种约定达成一致.知道新节点是什么我并不感到惊讶,因为我找不到答案.问题是这个问题在JS中也相当模糊.

要求:

  1. 强烈的脱钩.
  2. 在运行时加载新代码.
  3. 该解决方案应该适用,因此我可以与浏览器共享尽可能多的代码.

更新:

  1. 我确实摆弄了鸭子打字,我也遇到了Clojure关于基于协议的实现的想法.
  2. 我会很感激答案中的一些代码.

javascript abstraction node.js

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

ack | grep | whatnot特殊忽略文件夹模式node_modules/dir/node_modules

我最近发现了ack并且ack -ir --ignore-dir={node_modules,dist,.git} <search-term>对大多数事情都很有用但是这个

---node_modules/
---------------project1/
-----------------------node_modules/
---------------project2/
-----------------------node_modules/
Run Code Online (Sandbox Code Playgroud)

我想搜索"root"node_modules下的所有文件,并排除所有内部文件.

注意:如果我find . -type f | ack -v 'node_modules|.git|dist'在根node_modules文件夹下运行,我会得到一个合适的文件列表.发生这种情况是因为find .给出了相对路径 有什么方法可以把这个列表提供给ack吗?

grep ack node.js node-modules

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

以错误的方式定义struct

有人可以向我解释这段代码有什么问题吗?

#include<stdio.h>

struct A{
    int i;
    struct A* parent; 
    struct B test; // error: field ‘test’ has incomplete type
};
struct B{
    struct A* rootParent;
    int ref;
    int something;
};



int main(){
    struct A some, some2;
    some.i = 0;
    some.parent = &some2;
    some.test.rootParent = &some;
    some.test.ref = some.test.something = 0;
    some2.i =0; 
    some2.parent = 0;
    some2.test.rootParent = 0;
    some2.test.ref = some2.test.something = 0;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

看来我在这里缺少一些基本的东西.为什么A和B的顺序很重要?是否有可能做到这一点无关紧要?

如果我改变减速顺序一切正常,B先行.

c gcc

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