这是进行性能分析的有效方法吗?我想获得纳秒精度并确定类型转换的性能:
class PerformanceTest
{
static double last = 0.0;
static List<object> numericGenericData = new List<object>();
static List<double> numericTypedData = new List<double>();
static void Main(string[] args)
{
double totalWithCasting = 0.0;
double totalWithoutCasting = 0.0;
for (double d = 0.0; d < 1000000.0; ++d)
{
numericGenericData.Add(d);
numericTypedData.Add(d);
}
Stopwatch stopwatch = new Stopwatch();
for (int i = 0; i < 10; ++i)
{
stopwatch.Start();
testWithTypecasting();
stopwatch.Stop();
totalWithCasting += stopwatch.ElapsedTicks;
stopwatch.Start();
testWithoutTypeCasting();
stopwatch.Stop();
totalWithoutCasting += stopwatch.ElapsedTicks;
}
Console.WriteLine("Avg with typecasting = {0}", …Run Code Online (Sandbox Code Playgroud) 我有一个32位的exe,当它检测到操作系统是64位时需要动态加载64位dll.这可以通过LoadLibrary吗?如果没有,是否有其他方法可以实现相同的目标?
我有这个问题:
SELECT *
FROM sample
INNER JOIN test ON sample.sample_number = test.sample_number
INNER JOIN result ON test.test_number = result.test_number
WHERE sampled_date BETWEEN '2010-03-17 09:00' AND '2010-03-17 12:00'
Run Code Online (Sandbox Code Playgroud)
这里最大的表是RESULT,包含11.1M记录.左边2个表约1M.
此查询运行缓慢(超过10分钟)并返回大约800条记录.执行计划显示所有11M记录上的聚集索引扫描(通过它的PRIMARY KEY(result.result_number,它实际上不参与查询)).RESULT.TEST_NUMBER是一个群集主键.
如果我改变2010-03-17 09:00到2010-03-17 10:00 - 我得到大约40条记录.它执行300毫秒.和计划显示索引搜索(over result.test_number索引)
如果我将SELECT子句中的*替换为result.test_number(用索引覆盖) - 那么在第一种情况下所有都变快了.这指向hdd IO问题,但没有说明改变计划.
那么,有什么想法吗?
更新: sampled_date在表样本中并由索引覆盖.此查询中的其他字段:test.sample_number也由index和result.test_number覆盖.
更新2: 显然比sql server在任何原因都不想使用索引.
我做了一个小实验:我用结果删除INNER JOIN,选择所有test.test_number然后再做
SELECT * FROM RESULT WHERE TEST_NUMBER IN (...)
Run Code Online (Sandbox Code Playgroud)
当然,这很快.但我无法得到有什么不同,以及为什么查询优化器选择这种不恰当的方式来选择第一种情况下的数据.
更新3: 备份数据库并使用新名称恢复到数据库后 - 即使在更多范围内,这两个请求也能按预期快速运行...
那么 - 是否有任何特殊的命令来清理或优化,可能与此相关?:-(
我可以用改变irb提示模式
irb --prompt prompt-mode
Run Code Online (Sandbox Code Playgroud)
我可以看到什么null和simple做的,但我不能告诉之间的区别null与xmp和之间的差异default/ classic/ inf-ruby.有人可以向我解释这些其他模式的作用吗?让多个模式做同样的事情似乎毫无意义.
是否可以通过subselect实现LEFT JOIN的等效,其中需要多列.这就是我的意思.
SELECT m.*, (SELECT * FROM model WHERE id = m.id LIMIT 1) AS models FROM make m
Run Code Online (Sandbox Code Playgroud)
现在这样做,这给了我一个'操作数应该包含1列'的错误.
是的我知道LEFT JOIN可以做到这一点,但我被告知可以通过subselect我很好奇它是如何完成的.
是否有人知道如何正确地利用人名的一些代码/规则?
(这些可能不正确,只是一些样本名称以及大写可能如何/工作)
这似乎是一场失败的战斗......
如果有人有关于何时以及如何将名称大写的一些代码或规则,请告诉我:)
干杯,艾伯特
$.getJSON(service + "/GetJobTags",
{ tag: "a" },
function(json) {
$.each(json, function(i,val) {
alert(val.Title);
});
});
Run Code Online (Sandbox Code Playgroud)
它叫:
http://127.0.0.1:20087/ClientService.svc/GetJobTags?tag=a
这可能是值得注意的,该服务在客户端应用程序的不同端口上运行,该端口位于:
http://127.0.0.1:32017/index.htm
Firefox说HTTP 200 OK,但响应数据为空(在Firebug中以红色突出显示).在IE中它工作正常,服务器返回json.
这是权限问题吗?我需要使用JSONP吗?
在尝试结束活动时,任何想法可能导致来自ActivityManager的消息,"活动销毁历史记录的超时".这可以防止活动重新启动.
我被卡住了.甚至不知道在哪里看.
如何从git repo中仅查看一个文件?