实际上,这是一个简单的问题:您有 10 亿 (1e+9) 个无符号 32 位整数作为十进制 ASCII 字符串存储在 TSV(制表符分隔值)文件中。int()与处理同一数据集的其他工具相比,转换速度非常慢。为什么?更重要的是:如何让它更快?
因此问题是:在Python中将字符串转换为整数的最快方法是什么?
我真正想到的是一些半隐藏的 Python 功能,可以(滥用)用于此目的,与 Guidoarray.array在他的“优化轶事”中的使用不同。
示例数据(制表符扩展为空格)
38262904 "pfv" 2002-11-15T00:37:20+00:00
12311231 "tnealzref" 2008-01-21T20:46:51+00:00
26783384 "hayb" 2004-02-14T20:43:45+00:00
812874 "qevzasdfvnp" 2005-01-11T00:29:46+00:00
22312733 "bdumtddyasb" 2009-01-17T20:41:04+00:00
Run Code Online (Sandbox Code Playgroud)
读取数据所花费的时间在这里无关紧要,处理数据才是瓶颈。
微基准测试
以下所有语言都是解释性语言。主机运行 64 位 Linux。
Python 2.6.2 和 IPython 0.9.1,每秒约 214k 次转换 (100%):
In [1]: strings = map(str, range(int(1e7)))
In [2]: %timeit map(int, strings);
10 loops, best of 3: 4.68 s per loop
Run Code Online (Sandbox Code Playgroud)
REBOL 3.0 版本 2.100.76.4.2,~231kcps (108%):
>> strings: array …Run Code Online (Sandbox Code Playgroud) CreateFileMapping函数返回一个指向内存映射文件的指针,我想将该内存映射视为一个数组.
这是我基本上想做的事情:
char Array[] = (char*) CreateFileMapping(...);
Run Code Online (Sandbox Code Playgroud)
除了显然我不能简单地挥动手臂并声明指针现在是一个数组.
你们有什么想法我能做到这一点吗?我不想将指针指向的值复制到数组中,因为这会对大文件使用太多内存.
谢谢一堆,
假设我在Select Query中定义别名'count',我想将返回的数量限制为count/5(或表的20%).
我怎样才能做到这一点?除了整数,Mysql似乎没有任何东西,而不是函数.
我有一个应用程序,在整个公司的数百台计算机上使用,我必须修改应用程序的安装目录中的INI文件.用户可以随意安装应用程序,并且可以在任何给定时间安装多个版本的应用程序.我需要能够找到该安装目录.
到目前为止我考虑过的方法:
好吧,让我们听一下以编程方式确定Windows应用程序的安装目录的任何其他方法.
我有一个具有类数据结构的arraylist.
public class empRec
{
public string nuView;
public string firstName;
public string position;
}
empRec records = new empRec();
...
...
bar.add(records);
Run Code Online (Sandbox Code Playgroud)
现在,如果我想访问我可以使用的元素
foreach(empRec foo in bar) { ... }
Run Code Online (Sandbox Code Playgroud)
这允许我打印出我班上的值.
我不知道如何使用for循环来完成这项工作.
我的最终目标是遍历arraylist并找到员工记录并更改某些值.
例如,如果employeeNum等于先前的employeeNum检查位置id并更改位置id.
我在理解XNA中的视图矩阵时遇到了一些麻烦.我已经完成了所有其他部分,因为我刚刚学会了所需的数学,我不想使用内置的Matrix函数,而不了解他们先做的事情.
现在我理解了旋转,投影和翻译的基础知识,但我无法理解视图矩阵在XNA中的工作原理.
从我收集的信息来看,视图矩阵应该将"世界"转变为它自己的空间.看似合理,但库中的Matrix.CreateLookAt方法非常令人费解.
我已经建立(通过检查库函数输出的内容)这两段代码产生相同的结果:
Matrix view = Matrix.CreateReflection(new Plane(Vector3.UnitX, 0)) * Matrix.CreateReflection(new Plane(Vector3.UnitZ, 0)) * Matrix.CreateTranslation(Position);
// ..equals this if (Position = (0 0 -5), since LookAt "looks at" but the above just looks straight down Z)..
Matrix blah = Matrix.CreateLookAt(Position, Vector3.Zero, Vector3.UnitY);
Run Code Online (Sandbox Code Playgroud)
为什么要翻转X和Z轴?我认为你应该根据摄像机的旋转来旋转世界,但是在相反的方向,然后在相反的方向上将世界翻转相同的量.
或者视图矩阵根本不用作转换,而只是编码摄像机在世界中的位置和旋转?
有没有的等效__DATE__和__TIME__C#中?
基本上我要做的是在C#应用程序中放置一些构建时间戳.
我在微软网站上看到的一种可能性是做以下事情:
Assembly assem = Assembly.GetExecutingAssembly();
Version vers = assem.GetName().Version;
DateTime buildDate = new DateTime(2000, 1, 1).AddDays(vers.Build).AddSeconds(vers.Revision * 2);
Console.WriteLine(vers.ToString());
Console.WriteLine(buildDate.ToString());
Run Code Online (Sandbox Code Playgroud)
但是,这仅适用于AssemblyInfo.cs中的版本为"1.0 .. ",而我们的版本不是.
我正在使用jquery datepicker(http://jqueryui.com/demos/datepicker/).
演示页面上的日期选择器小而紧凑.但是,当我在我的网站上使用datepicker时,日历是巨大的.我估计每个日期都使用12磅字体.
如何让日子缩小?
我目前正在教自己Ada,虽然我可以从解决一些更传统的问题开始.
更具体地说,我尝试计算阶乘n !,而n> 100.到目前为止,我的实施是:
with Ada.Text_IO;
with Ada.Integer_Text_IO;
use Ada.Text_IO;
procedure Factorial is
-- define a type covering the range beginning at 1 up to which faculty is to
-- be computed.
subtype Argument is Long_Long_Integer range 1..100;
-- define a type that is large enough to hold the result
subtype Result is Long_Long_Integer range 1..Long_Long_Integer'Last;
package Result_IO is new Ada.Text_IO.Integer_IO(Result); use Result_IO;
-- variable holding the faculty calculated.
fac : Result := 1;
begin
-- loop over whole range …Run Code Online (Sandbox Code Playgroud) 我正在尝试(交叉)为iPhone 编译混淆的openssh,我遇到了一些问题.我正在使用它来配置构建:
./configure --host=arm-apple-darwin CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin9-gcc-4.0.1 \
CFLAGS="-arch armv6 -pipe -std=c99 -I/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/usr/include \
-L/Users/ben/iphonelib -Wno-trigraphs -fpascal-strings -fasm-blocks -O0 -Wreturn-type \
-Wunused-variable -fmessage-length=0 -fvisibility=hidden \
-miphoneos-version-min=2.0 -gdwarf-2 -mthumb \
-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk" \
CPP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/cpp \
AR=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ar
Run Code Online (Sandbox Code Playgroud)
但这不起作用,抱怨无法找到许多头文件,包括netinet/in_systm.h和openssl/bn.h.有没有人对如何进行构建完成有任何想法?
c# ×4
3d ×1
ada ×1
arrays ×1
c++ ×1
camera ×1
coding-style ×1
datepicker ×1
datetime ×1
installation ×1
iphone ×1
jquery ×1
limit ×1
matrix ×1
mysql ×1
openssh ×1
optimization ×1
performance ×1
pointers ×1
python ×1
sql ×1
wmi ×1
xna ×1