我做了一些速度测试,以确定在进行数字乘法或除法时最快的速度.我必须努力工作以击败优化者.我得到了无意义的结果,例如在2微秒内运行的大量循环,或者乘法与除法的速度相同(如果只是那样).
在我最终努力工作以击败足够的编译器优化之后,同时仍然让它优化速度,我得到了这些速度结果.他们可能对别人感兴趣?
如果我的测试仍然悬而未决,请告诉我,但要善待,因为我只花了两个小时写这个垃圾:P
64 time: 3826718 us
32 time: 2476484 us
D(mul) time: 936524 us
D(div) time: 3614857 us
S time: 1506020 us
Run Code Online (Sandbox Code Playgroud)
使用双打"乘以除法"似乎是进行除法的最快方法,其次是整数除法.我没有测试分裂的准确性.可能是"正确的划分"更准确吗?我不想在这些速度测试结果之后发现,因为我只是在基数为10的常数上使用整数除法,让我的编译器为我优化它;)(并且不会破坏它的优化).
这是我用来获得结果的代码:
#include <iostream>
int Run(int bla, int div, int add, int minus) {
// these parameters are to force the compiler to not be able to optimise away the
// multiplications and divides :)
long LoopMax = 100000000;
uint32_t Origbla32 = 1000000000;
long i = 0;
uint32_t bla32 = Origbla32;
uint32_t div32 = div;
clock_t Time32 …
Run Code Online (Sandbox Code Playgroud) 在NHibernate Profiler中,我观察到当我在关联上使用eager fetching时,在HQL Query中使用"left join fetch"或在Criteria Query中使用.SetFetchMode()时,查询不再缓存在查询缓存中.
事实上,从我所看到的只有非常基本的查询被缓存.如果有人能够让我深入了解哪些查询被缓存以及哪些查询没有,我将标记答案.
如果它有所不同,我正在使用Memcached ....对于查询密集系统,L2缓存是否有更好的选择?
我发现这很有挑战性 - 如果我不使用急切加载我有N + 1问题(但使用缓存),如果我急切加载,我从数据库中获取所有实体,但没有缓存.
似乎有相当厚的分界线,这两种策略都有性能改进,但这两种策略都会从其他策略中抢夺性能.
如果有人能够对这条"粗线"的位置有所了解,那么我应该保持最佳性能,或者如何"让线条变得更薄"......我会很满心并标记答案.
有没有人试图将Scrum吸收到大多数开发人员只是平庸的团队?我的意思是那些不是最精通技术的开发人员,他们有很差的时间管理技能,但最重要的是缺乏个人责任感和承诺感.
你认为它可以工作?或者你会尝试不同的方法吗?
我有一个enum(下面),我希望能够使用LINQ扩展方法.
enum Suit{
Hearts = 0,
Diamonds = 1,
Clubs = 2,
Spades = 3
}
Run Code Online (Sandbox Code Playgroud)
Enum.GetValues(...)是返回类型System.Array,但我似乎无法访问ToList()扩展或其他任何类型.
我只是想写点像......
foreach(Suit s in Enum.GetValues(typeof(Suit)).Select(x=>x).Where(x=> x != param)){}
Run Code Online (Sandbox Code Playgroud)
有什么我想念的,或者有人可以向我解释为什么这是不可能的?
谢谢.
是否有Drupal的.NET端口?
我喜欢Drupal ......我喜欢这个主意.我希望它是.NET,因为我们是微软的商店,并且有资源来创建.NET组件.
我正在玩Windows身份基础,我正在尝试创建一个基于MVC.NET的安全令牌服务,并将其用作单点登录应用程序.
我唯一的问题是我不知道如何生成federationmetadata.xml文件.
有手动生成此文件的工具吗?
是否可以更改Excel打开.csv文件时使用的默认数据类型?在读取.csv文件时,我希望Excel默认为TEXT而不是General数据格式.
我希望能够在没有从我的数据中删除前导0的情况下打开.csv.目前我在读取.csv文件时使用"导入外部数据"向导,但我希望能够使用"文件/打开"或只需双击.csv文件.
accept
winsock 有3个不同的版本.除了accept
标准合规的基本内容之外,还有AcceptEx
最先进的版本(由于它具有重叠的io功能),以及WSAAccept
.后者支持条件回调,据我所知,它允许在接受之前拒绝连接请求(当SO_CONDITIONAL_ACCEPT
启用该选项时).其他任何版本都不支持此功能.
由于我更喜欢使用AcceptEx
重叠的io,我想知道为什么这个功能只能在更简单的版本中使用?
我不太了解TCP的内部工作原理,告诉我们在接受连接之前拒绝连接和在连接建立后立即断开连接之间实际上有什么区别?如果有,有没有办法模仿WSAAccept
功能AcceptEx
?
有人能否对这个问题有所了解?
我一直在寻找在域驱动设计中使用IoC容器的指导.不幸的是,埃文的书没有触及这个主题.我能在互联网上找到的唯一重要指导方针就在这里.
马洛维奇的许多观点都是常识,但我担心其中的一些.他建议IoC容器应保留用于仅解析服务,并且使用IoC容器来解析域依赖性是一个坏主意.但是,他没有用任何例子来支持这个断言.他简单地说它是事实.
然后他继续说混合IoC容器和工厂是没有意义的.这似乎与他的第一点相矛盾.事实上,如果IoC容器不能解析域依赖关系,那么它们应该如何解决呢?埃文的书清楚地指出工厂是合乎逻辑的选择.
我很感激您对此事的任何意见.对于DDD和IoC,我都是新手.我正在努力掌握IoC和DDD如何协同工作.
.net ×2
32bit-64bit ×1
agile ×1
asp.net ×1
c# ×1
c++ ×1
caching ×1
csv ×1
double ×1
drupal ×1
enums ×1
excel ×1
hql ×1
java ×1
linq ×1
methodology ×1
nhibernate ×1
performance ×1
query-cache ×1
scrum ×1
tcp ×1
wif ×1
winsock ×1