草庐IT

馊主意

全部标签

java - Java 8 中的方法引用缓存是个好主意吗?

假设我有如下代码:classFoo{Yfunc(Xx){...}voiddoSomethingWithAFunc(Functionf){...}voidhotFunction(){doSomethingWithAFunc(this::func);}}假设hotFunction被非常频繁地调用。那么是否建议缓存this::func,可能像这样:classFoo{Functionf=this::func;...voidhotFunction(){doSomethingWithAFunc(f);}}就我对java方法引用的理解而言,虚拟机在使用方法引用时会创建一个匿名类的对象。因此,缓存引用

architecture - 一起使用 MySQL 和 Neo4j 是个好主意吗?

我将创建一个包含许多类似项目(数百万)的应用程序,并且我想将它们存储在MySQL数据库中,因为我想做大量统计数据并搜索特定列的特定值。但同时,我将存储所有项目之间的关系,它们在许多连接的二叉树状结构(传递闭包)中相关,而关系数据库不擅长这种结构,所以我会喜欢在Neo4j中存储对此类数据有良好性能的所有关系。我的计划是将除了MySQL数据库中的关系之外的所有数据以及与item_id的所有关系都存储在Neo4j数据库中。当我想查找一棵树时,我首先在Neo4j中搜索树中的所有item_id:s,然后在MySQL数据库中搜索查询中的所有指定项,如下所示:SELECT*FROMitemsWHER

mysql - 在mysql中索引日期时间字段是个好主意吗?

我正在设计一个大型数据库。在我的应用程序中,我将有很多行,例如我目前有一个包含400万条记录的表。我的大多数查询都使用datetime子句来选择数据。在mysql数据库中索引日期时间字段是个好主意吗?Selectfield1,field2,.....,field15fromtablewherefield20betweennow()andnow+30days我正在努力让我的数据库保持良好的运行状态并让查询顺利运行另外,你觉得我应该有什么想法来创建一个高效的数据库? 最佳答案 MySQL出于多种原因推荐使用索引,包括消除条件之间的行:h

在C ++中编写多级内联函数是个好主意吗?

这样的代码是否被认为是不良的做法?如果是这样,我应该怎么办func1重复func2的行为,我需要两个功能都存在(这不被视为代码冗余)吗?UPD:对不起,我的插图不好,我会尝试更清楚地解释这个问题。我想问的是:我正在尝试设计一个大量调用两种方法的优化类func1和func2,func1的实现用途func2我希望这两种方法都会尽可能地串联,所以打电话更好func2从func1像这个代码或独立实施。inlineintfunc2(intx){returnx*(x+2);}inlineintfunc1(intx){returnx*(x+1)*func2(x+2);}看答案如果避免多次编写相同的代码,编写

mongodb - 在 mongodb 中生成每天的集合是个好主意吗

为给定日期的数据创建每天集合是否是个好主意(我们可以从每天开始,然后如果数据过多,则改为每小时)。我们可以在mongodb中创建的集合数量是否有限制,还是会导致性能损失(mongodb维护这么多集合是否是一种开销)。大量的集合对性能有什么不利影响吗?为了给您提供更多背景信息,这些数据将更像facebook提要,并且只有最新的数据(比如最近一周或一个月)对我们来说更重要。每天收集可以减少文档数量,并且可能会导致快速访问。即使我们需要旧数据,我们也可以回退到旧集合。这是有道理的,还是我走错了方向? 最佳答案 您真正需要的是归档旧数据。我

node.js - 从单个 Node.js 应用程序打开多个 Mongo 连接是个好主意吗?

背景:我正在尝试优化我的Node.jsAPI的速度,该API在AmazonCloud上使用Express和Mongoose构建。我有一个API调用需要很长时间才能运行(我的/statsAPI调用会编译来自大量来源的数据,因此会进行数百个mongo查询,因此运行大约需要20秒)。我注意到,当这个API调用正在运行时,其他也命中Mongo副本集的API调用返回缓慢。我的第一个想法是统计查询很慢,因此阻塞,但根据我的统计面板,我没有任何查询需要超过100毫秒才能运行,而且我的MongoDB统计数据都在相当健康的范围内(每个查询20多个)第二,问题:现在,我的Node.js应用程序在启动时建立

mysql - 将图像文件存储在 Mongo 数据库中,这是个好主意吗?

在使用mysql时,将图像作为BLOB存储在数据库中是一个坏主意,因为它会使数据库变得非常大,这对数据库的正常使用是有害的。然后,最好将图像文件保存在磁盘上,并将它们的链接保存在数据库中。但是,我认为这对于MongoDB来说是不同的,因为增加数据库文件大小对性能的影响可以忽略不计(这就是MongoDB可以成功处理数十亿条记录的原因)。您认为将图像文件保存在MongoDB(作为GridFS)上是否更好,以减少服务器上存储的文件数量;还是还是让数据库尽可能小更好? 最佳答案 问题不在于数据库变大,数据库可以处理这个问题(尽管MongoD

c++ - 从函数返回 "const char * "是个好主意吗?

现在我有一个必须返回字符串的函数。我看到了一个特殊的实现,他从函数中返回了一个constchar*。类似这样的:constchar*GetSomeString(){........returnsomestlstring.c_str();}SomeOtherFoo(){constchar*tmp=GetSomeString();strings=tmp;}现在我觉得这可能有问题。我的直觉对吗?还是这是一个完全安全的代码?请给我你的建议。我有一种感觉returnconstchar*这种方式可能会导致严重破坏..谢谢,阿琼 最佳答案 取决于

C++11 范围导出保护,好主意吗?

我为C++11编写了一个小型实用程序类,我将其用作范围保护,以便更轻松地处理异常安全和类似的事情。看起来有点像黑客。但我很惊讶我没有在其他地方看到它使用C++11功能。我认为boost对于C++98有类似的东西。但这是个好主意吗?还是有我遗漏的潜在问题?在boost或类似中是否已经有类似的解决方案(具有C++11功能)?namespacedetail{templateclassscope_exit:boost::noncopyable{public:explicitscope_exit(T&&exitScope):exitScope_(std::forward(exitScope)){

c++ - 为什么在 C++ 中将 "using namespace"包含到头文件中是个坏主意?

在阅读BruceEckel关于命名空间的“ThinkinginC++”时,我遇到了以下陈述:Howeveryou'llvirtuallyneverseeausingdirectiveinaheaderfile(atleastnotoutsideofscope).Thereasonisthatusingdirectiveeliminatetheprotectionofthatparticularnamespace,andtheeffectlastuntiltheendofcurrentcompilationunit.Ifyouputausingdirective(outsideofasc