我想在一个明确的清单中回答两个问题:
所以,我读过Redis列表实际上是用链表实现的.但对于其他类型,我无法挖掘任何信息.此外,如果有人偶然发现了这个问题并且没有对修改或访问不同数据结构的优缺点进行高级概述,那么他们就会有一个完整的列表,列出何时最好地使用特定类型来引用.
具体来说,我想概述所有类型:字符串,列表,集,zset和哈希.
哦,到目前为止,我已经看过这些文章,其中包括:
人们普遍提到Redis是"Blazing Fast",mongoDB也很快.但是,我很难找到比较两者结果的实际数字.鉴于类似的配置,功能和操作(并且可能显示因子如何随着不同的配置和操作而变化)等,Redis速度提高了10倍,速度提高了2倍,速度提高了5倍?
我只谈到性能.据我所知,mongoDB是一个不同的工具,具有更丰富的功能集.这不是"mongoDB 比Redis 更好 "的辩论.我问,Redis比mongoDB好多少?
在这一点上,即使是便宜的基准也比没有基准更好.
我试图用SO找到答案.有许多问题列出了在c ++中构建一个只有头文件库的各种优缺点,但是我无法找到一个以可量化的术语来构建这样的库.
因此,在可量化的术语中,使用传统上分离的c ++标头和实现文件与仅标头之间有什么不同?
为简单起见,我假设不使用模板(因为它们只需要标题).
详细说明,我列出了我从文章中看到的优点和缺点.显然,有些不容易量化(例如易用性),因此无法用于量化比较.我会用可量化的方式标记那些我期望可量化的指标.
仅限标题的优点
仅限标题的缺点
您可以从较大的开源项目(比较类似大小的代码库)中使用的任何示例都非常感激.或者,如果您知道可以在仅标题版本和分离版本之间切换的项目(使用包含两者的第三个文件),那将是理想的.轶事数字也很有用,因为它们给了我一个可以获得一些洞察力的球场.
利弊来源:
提前致谢...
更新:
对于可能稍后阅读并且有兴趣获得关于链接和编译的一些背景信息的任何人,我发现这些资源很有用:
更新:(回应下面的评论)
仅仅因为答案可能不同,并不意味着测量是无用的.你必须开始测量一些点.您拥有的测量值越多,图像就越清晰.我在这个问题上要求的不是整个故事,而是对图片的一瞥.当然,如果他们想要不道德地宣传他们的偏见,任何人都可以使用数字来扭曲争论.但是,如果有人对两个选项之间的差异感到好奇并发布这些结果,我认为这些信息很有用.
没有人对这个话题感到好奇,足以衡量它吗?
我喜欢枪战项目.我们可以从删除大部分变量开始.只在一个版本的linux上使用一个版本的gcc.仅对所有基准测试使用相同的硬件.不要使用多个线程进行编译.
然后,我们可以测量:
我已经编写了我自己的通用PHP库一段时间了,我正在考虑如何组织目录结构,但我想在我正式化库的目录结构之前得到人们的想法.
这是我到目前为止:https: //github.com/homer6/altumo/tree/master/source/php
我以为我可以"按主题"或"按类别"进行.到目前为止,我只能想到一个我喜欢"按类别"的例子:Boost http://www.boost.org/doc/libs/1_46_1/?view=categorized
此外,Qt是按模块组织的,但我认为它有点乱,因为所有内容都有点填入QtCore http://qt-project.org/doc/qt-5/qtmodules.html
有任何想法吗?
提前致谢.
更新:我发现了一本非常好的书,它向我展示了许多伟大的图书馆设计惯例:http://www.apibook.com/blog/
更新:我发现了一篇有趣的文章提到了代码组织(http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html).在底部,它说:"你的代码树会是什么样子?他希望用这些词来形容它:简单,实用,优雅,正交,可组合.这是理想的,现实有点不同."
我已经和Socket.IO一起工作了几天,这既令人兴奋又令人沮丧.缺乏当前的文档/教程使学习变得非常困难.我终于设法创建了一个基本的聊天系统,但有一个明显的问题.我该如何保护它?
是什么阻止恶意用户复制(或编辑)我的代码并连接到我的服务器?我可以从我的PHP脚本中获取用户名并将其提交给Socket.IO,这样我就可以将它们识别为该用户(当然PHP具有安全性),但是什么阻止某人提交未注册的用户名?
如何确保提交的事件是真实的并且没有被篡改?
我的基本socket.io聊天参考.
服务器:
var io = require('socket.io').listen(8080);
var connectCounter = 0;
io.sockets.on('connection', function (socket) {
connectCounter++;
console.log('People online: ', connectCounter);
socket.on('set username', function(username) {
socket.set('username', username, function() {
console.log('Connect', username);
});
});
socket.on('emit_msg', function (msg) {
// Get the variable 'username'
socket.get('username', function (err, username) {
console.log('Chat message by', username);
io.sockets.volatile.emit( 'broadcast_msg' , username + ': ' + msg );
});
});
socket.on('disconnect', function() { connectCounter--; });
});
Run Code Online (Sandbox Code Playgroud)
客户:
<?php session_start() ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta …
Run Code Online (Sandbox Code Playgroud) 我正在尝试找到一个为我的Javascript源代码生成HTML文档的工具.
有谁知道Google用于在以下网址生成界面的工具是否是开源的?我能够产生类似的输出吗?
http://closure-library.googlecode.com/svn/docs/class_goog_proto2_Serializer.html
http://closure-library.googlecode.com/svn/docs/namespace_goog_date.html
http://closure-library.googlecode.com/svn/docs/namespace_goog_events.html
http://closure-library.googlecode.com/svn/docs/class_goog_gears_Database.html
http://closure-library.googlecode.com/svn/docs/class_goog_ui_DatePicker.html
我知道http://code.google.com/p/jsdoc-toolkit/
但是我想知道Google使用的特定生成器是否可用于我自己的源(如果这很重要的话,它将是开源的).
提前致谢...
javascript documentation-generation google-closure google-closure-library
我是程序员.我想成为一名更好的程序员.我想阅读其他人编写的更多源代码(特别是开源项目).此外,我希望能够对所有源代码进行现有的可搜索引用,以便我可以提取对结构和片段的引用.
有谁知道使用Kindle的方法吗?有人试过吗?你的发现是什么?
另外,有没有人知道一个索引所有开源源代码的网站?
我认为这是一个简单的谷歌搜索,但显然我错了.
我见过你应该提供:
Accept-Encoding: gzip;q=0,deflate;q=0
Run Code Online (Sandbox Code Playgroud)
在请求标头中.但是,建议它的文章也指出代理通常会忽略该标头.此外,当我将它提供给nginx时,它仍然压缩了响应消息体.
http://forgetmenotes.blogspot.ca/2009/05/how-to-disable-gzip-compression-in.html
那么,如何告诉Web服务器在响应消息体上禁用压缩?
所以我的问题实际上有几个部分:
使用Poco线程库:
我已经看过这里了:
提前致谢...
我有一个问题,MongoDB无法响应并拒绝生产中的连接.
在测试中,我能够通过向我的应用程序发送大量请求来一致地重现"锁定".
以下是mongostat的示例输出:
0 0 0 0 0 1 0 1.3g 1.8g 177m 0 0 0 0|0 0|0 62b 1k 18 19:40:11
0 0 0 0 0 1 0 1.3g 1.8g 177m 0 0 0 0|0 0|0 62b 1k 18 19:40:12
--------------LOAD TEST BEGINS-----------------------
1 56 0 0 1 58 0 1.3g 1.81g 177m 0 0 0 0|0 0|0 10k 302k 18 19:40:13
10 116 0 0 2 127 0 1.3g 1.81g 177m 0 0 0 0|0 1|0 32k 263k …
Run Code Online (Sandbox Code Playgroud) benchmarking ×2
c++ ×2
javascript ×2
mongodb ×2
redis ×2
algorithm ×1
compression ×1
github ×1
gzip ×1
header-only ×1
http ×1
ipad ×1
kindle ×1
node.js ×1
organization ×1
php ×1
security ×1
socket.io ×1