我有一个非常简单的SQL查询:
SELECT COUNT(DISTINCT x) FROM table;
Run Code Online (Sandbox Code Playgroud)
我的桌子有大约150万行.这个查询运行得很慢; 它需要大约7.5s,相比之下
SELECT COUNT(x) FROM table;
Run Code Online (Sandbox Code Playgroud)
大约需要435毫秒.有没有办法改变我的查询以提高性能?我已经尝试过分组并进行常规计数,以及在x上放置索引; 两者都有相同的7.5s执行时间.
我有一个SMTP服务器,为了这个问题,我们可以调用它:smtp.mydomain.com.
如何检查SMTP服务器是否正常工作?我可以从Linux命令行发送电子邮件吗?
我使用过,LinkedHashMap因为重要的是键在地图中输入的顺序.
但现在我想首先获得key的值(第一个输入的条目)或最后一个.
如果有喜欢的方法first()和last()或类似的东西?
我是否需要一个迭代器才能获得第一个键入口?这就是我使用的原因LinkedHashMap!
谢谢!
我的bash shell需要3-4秒才能启动,而如果我启动它--norc会立即运行.
我开始"分析" /etc/bash.bashrc并~/.bashrc通过手动插入return语句和寻求速度改进,但它不是一个定量过程而且效率不高.
如何配置我的bash脚本并查看哪些命令需要花费大部分时间来启动?
我喜欢Ruby的||=机制.如果变量不存在或是nil,则创建它并将其设置为等于:
amount # is nil
amount ||= 0 # is 0
amount ||= 5 # is 0
Run Code Online (Sandbox Code Playgroud)
我现在需要在JavaScript中做类似的事情.什么是惯例或正确的方法来做到这一点?我知道||=语法不正确.处理它的两种明显方法是:
window.myLib = window.myLib || {};
// or
if (!window.myLib)
window.myLib = {};
Run Code Online (Sandbox Code Playgroud) Java 6的Arrays.sort方法使用Quicksort作为基元数组,并对对象数组进行合并排序.我相信大多数时候Quicksort比合并排序更快,并且内存更少.我的实验支持这一点,尽管两种算法都是O(n log(n)).那么为什么不同的算法用于不同的类型呢?
我们知道快速排序是最快的排序算法.
collections.sort使用合并排序算法而不是快速排序.但是Arrays.sort使用快速排序.
Collections.sort使用合并排序而不是快速排序的原因是什么?
我使用的是JDK-8(x64).对于Arrays.sort(primitives),我在Java文档中找到了以下内容:
该排序算法是一个双枢轴快速排序弗拉基米尔·Yaroslavskiy,乔恩·本特利,以及约书亚Bloch.`
对于Collections.sort(对象),我发现了这个"Timsort":
这个实现是一个稳定的,自适应的,迭代的mergesort ......这个实现将指定的列表转储到一个数组中,对数组进行排序,并迭代列表,从数组中的相应位置重置每个元素.
如果Collections.sort使用数组,为什么不调用Arrays.sort或使用双枢轴QuickSort?为什么要使用Mergesort?
目前我对ARM一般感兴趣,特别是iphone/android目标.但我只想更多地了解铿锵声,因为它感觉在未来几年中扮演重要角色.
我试过了
clang -cc1 --help|grep -i list
clang -cc1 --help|grep arch|grep -v search
clang -cc1 --help|grep target
-triple <value> Specify target triple (e.g. i686-apple-darwin9)
Run Code Online (Sandbox Code Playgroud)
我知道clang有-triplet参数,但是如何列出所有可能的值呢?我发现clang在交叉编译方面与gcc非常不同,在GCC世界中你应该为所有东西都有单独的二进制文件,比如PLATFORM_make或PLATFORM_ld(i*86-pc-cygwin i*86 - * - linux-gnu等.http: ://git.savannah.gnu.org/cgit/libtool.git/tree/doc/PLATFORMS)
在clang世界中,它只有一个二进制文件(正如我在一些论坛上看到的那样).但是如何获得支持的目标列表?如果我的目标不支持我的发行版(linux/windows/macos/whatever),我怎么能得到支持更多平台的那个?
如果我SVN最新铿锵如下:
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
Run Code Online (Sandbox Code Playgroud)
我会获得大多数平台吗?看起来Clang并没有立即考虑交叉编译,但是因为它基于llvm,它理论上应该是非常交叉友好的?谢谢!
设置CSS属性的首选方法是什么?
内联样式属性:
<div style="width:20px;height:20px;background-color:#ffcc00;"></div>
Run Code Online (Sandbox Code Playgroud)
<style>...</style>标签中的样式属性:
<style>.gold{width:20px;height:20px;background-color:#ffcc00;}</style><div class="gold"></div>
Run Code Online (Sandbox Code Playgroud) java ×4
collections ×2
sorting ×2
algorithm ×1
arrays ×1
bash ×1
clang ×1
command-line ×1
count ×1
css ×1
dictionary ×1
distinct ×1
html ×1
java-8 ×1
javascript ×1
linux ×1
llvm ×1
mergesort ×1
performance ×1
postgresql ×1
profiling ×1
quicksort ×1
ruby ×1
smtp ×1
syntax ×1