我知道这是一个常见的问题,但我已经完成了测试,我需要一些特殊的功能!
我需要的功能是:
可选功能:
我测试过:
现在我要测试JugglingDB和Bookshelf.js(但我不喜欢最后一个).
我正在使用alix 2d13开发基于linux的设备.
我开发了一个脚本,负责创建映像文件,创建分区,安装引导加载程序(syslinux),内核和initrd,并注意将根文件系统文件放入正确的分区.
配置文件位于tmpfs文件系统上,并在系统启动时由读取驻留在自己分区上的XML文件的软件创建.
我正在寻找一种更新文件系统的方法,我考虑过两种解决方案:
每个解决方案都有自己的优势: - 文件系统映像将允许我删除任何未使用的文件但需要大量时间,它会快速杀死紧凑型闪存; - 存档较小,需要较少的更新时间,但我会在短时间内对根文件系统产生问题.
另一种解决方案可能是放置文件列表并将前/后更新脚本放入tar存档中,因此任何不驻留在文件列表中的文件都将被删除.
你怎么看?
我正在用C#开发一个服务器.该服务器将充当备份服务的数据服务器:客户端将连续发送数据,大量数据,特别是在同一个tcp通道中发送最多五个文件的数据块.我会慢慢地向服务器发送数据,我不想杀死客户带宽,因此我不需要加速最大数据发送,因此,我可以使用单个tcp通道来处理所有事情.
这样说,实际上服务器使用BeginReceive方法从客户端获取数据,在Windows上,这意味着IOCP.我的问题是:BeginReceive将如何在linux/freebsd trough mono上执行?在Windows上,我已经阅读了很多东西,表现非常好,但是这个软件,服务器部分,将在linux或freebsd上运行单声道,我不知道这些方法是如何实现的!
更多,尝试减少(Begin | End)接收方法的Async State对象的继续分配我保留一个用于tcp连接,在BeginReceive回调中我复制数据然后再使用它(当然我不清除数据)因为我知道通过EndReceive返回值多少读取).缓冲区设置为8kb,所以我最大限度地复制8kb的数据,它不应该杀死resoruces.
我的目标是最多可以达到400/500的连接数.它不是那么多,但同时,服务器(机器)将通过LVM + Linux软件Raid镜像和使用clamav进行防病毒检查,通过自己的文件系统(首先在C#中使用保险丝开发,后来在C中开发)来处理文件软件必须尽可能轻!
编辑:我忘了说机器将(可能)是英特尔酷睿2双核2.66+ GHz(3 MB L2 - FSB 1066 MHz),2 GB内存,SO使用64位.
单声道是使用epoll(libevent)还是kqueue(在freebsd上)?我应该做一些特定的事情来尝试最大化表现?我可以做些什么来不杀死接收数据包的资源吗?
当我使用PHP从资源(查询)获取行时,我得到一个非常奇怪,毫无意义且完全随机的错误.
我的开发机器是带有Apache 2.2的Windows XP SP3,而MySQL运行在虚拟机上,使用ubuntu 10.04,带有768mb的RAM,100GB的HDD和4个逻辑内核(Intel q6600).但是这个问题与Windows上的PHP无关,因为我在数据库机器上运行代码时遇到了同样的错误.
我正在使用mysql扩展(不是mysqli或者mysqlnd),但环顾四周我创建了一个关于这个与mysqlnd扩展相关的错误的补丁,所以,我可能会尝试.
主要的问题是,当我执行这个查询(一个带有几个派生表和超过20个连接的真正大的查询)并且处理结果很快并且一切顺利时,但是当我的代码花费大约15/20秒来处理块时行(我需要从它们之间以非常特殊的方式链接的行块构建一个对象,我不能改变它,数据库不是我的,并且从这个对象生成一些PDF)一段时间后(随机时间)我收到此错误"空行数据包正文".
我使用无缓冲的查询来减少内存消耗(如果我启用缓冲,我得到大约260MB的已用内存),但这应该不是问题.
我正在为java中基于移动设备的设备编写一个Web服务器.
这个网络服务器是单线程的,遵循nginx,node.js和类似的背后的想法:不产生多个线程只是在事件循环中使用异步操作.
虽然使用多线程网络服务器可能会在x86最近的cpu上提供更好的性能,但基于arm的单核cpu将需要做更多的工作.
为了澄清,我非常清楚C和我在C#中实现普通c或多线程的单线程Web服务器,利用Windows上的IOPS,但我在java中只编写了一个简单的web服务器,我想要替换它用这个新的.
现在,我正在使用java nio,并且我已经知道ByteBuffer在转换为字符串时非常慢但是这不是问题,因为我不需要做,事实上gaix maximium表演我想实现解析和比较字节级别.
我的问题是,解析字节缓冲区的方法更快?
我已经看到ByteBuffer支持get方法,它允许访问单个字节并向前移动光标,支持数组方法,返回支持数组,所以我的问题是哪种方法更快?
我可以直接在支持的数组上工作,或者我应该避免和使用get?
我想实现一个ByteBufferPool来重用bytebuffer,我会让线程知道它,在下面阅读,这可能是一个问题吗?
在某些情况下,我将比较字节到字节,应用掩码来处理区分大小写(我的意思是,如果第一个字节是G,第三个是T,第四个是空格(0x47,0x54和0x20)我可以处理请求作为一个GET)和其他情况下我需要比较字符串和字节数组,比如标题(我将循环通过字符串字符,将它们转换为字节并与字节进行比较).
对不起这些愚蠢的问题,但我不知道java规格,不知道内部java的东西,所以我需要信息:)
有人可以暗示一下吗?:)
PS:很明显,并非所有操作都可以以do-stuff-pause-continue-return方式处理,所以我将实现一个ThreadPool以避免线程创建惩罚
我正在使用buildroot构建一个嵌入式系统,我想用node.js替换nginx + php.
我的系统正在使用eglibc,但我想减小系统的大小,所以我想切换到uclibc.node.js可以使用uclibc-0.9.32-nptl编译吗?
更多,虽然我目前的测试硬件基于x86,alix,我将在几个月后切换到基于arm的插头计算机.node.js会在基于arm的硬件上运行吗?
我正在编写一个用于保险丝(Linux)的git包装器,以访问git存储库,如普通文件和目录。
访问用于分支,标签和提交的文件夹和文件效果很好,但是提交文件时出现奇怪的行为。
我做以下样式:
之后,我更新了分支引用,我仅查看更新的文件,而没有其他任何信息!
这里有代码
String referenceName = null;
IEnumerable<Commit> parentCommit = null;
// Riposiziona il puntatore dello stream all'inizio
openedHandle.Stream.Seek(0, SeekOrigin.Begin);
// Crea il blob
Blob blob = this.repository.ObjectDatabase.CreateBlob(openedHandle.Stream);
// Acquisisce la path rimuovendo le prime due parti della path
List<string> pathParts = new List<string>(openedHandle.Path.Split('/'));
pathParts.RemoveRange(0, 3);
// Inserisce il blob in un tree
TreeDefinition treeDefinition = new TreeDefinition();
treeDefinition.Add(String.Join("/", pathParts), blob, Mode.NonExecutableFile);
Tree tree = this.repository.ObjectDatabase.CreateTree(treeDefinition);
// Inizializza l'autore ed il commiter
Signature …Run Code Online (Sandbox Code Playgroud)