编辑:我完全重做了这个问题.这个问题与time.time()无关
这是一个程序:
import time
start=time.time()
a=9<<(1<<26) # The line that makes it take a while
print(time.time()-start)
Run Code Online (Sandbox Code Playgroud)
当程序保存为文件并在Python 3.4中使用IDLE运行时,大约需要10秒,即使打印出0.0 time.time().IDLE非常清楚这个问题,因为从命令行运行时,这个程序几乎没有时间.
另一个具有相同效果的程序,如senshin所发现的,是:
def f():
a = 9<<(1<<26)
Run Code Online (Sandbox Code Playgroud)
我已经确认,当在Python 2.7 IDLE或python 2.7或3.4上的命令行中运行时,这个程序几乎是即时的.
那么什么是Python 3.4 IDLE这样做需要这么长时间?我知道计算这个数字并将其保存到内存是磁盘密集型的,但我想知道的是为什么Python 3.4 IDLE执行此计算并在Python 2.7 IDLE和命令行Python可能不会执行时编写.
我有一个std::collections::HashSet,我想要采样并删除一个均匀的随机元素.
目前,我正在做的是使用随机抽样索引rand.gen_range,然后迭代HashSet到该索引以获取元素.然后我删除所选元素.这有效,但效率不高.有没有一种有效的方法来随机抽样元素?
这是我的代码的简化版本:
use std::collections::HashSet;
extern crate rand;
use rand::thread_rng;
use rand::Rng;
let mut hash_set = HashSet::new();
// ... Fill up hash_set ...
let index = thread_rng().gen_range(0, hash_set.len());
let element = hash_set.iter().nth(index).unwrap().clone();
hash_set.remove(&element);
// ... Use element ...
Run Code Online (Sandbox Code Playgroud) 我正在用 Rust 创建一个终端文本编辑器。编辑器将终端置于原始模式,禁用字符回显等,然后退出时恢复原始终端功能。
但是,编辑器有一些错误,并且由于无符号变量下溢等问题时不时会意外崩溃。发生这种情况时,将终端恢复到其原始状态的清理代码永远不会运行。
我想运行的清理功能如下:
fn restore_orig_mode(editor_config: &EditorConfig) -> io::Result<()> {
termios::tcsetattr(STDIN, termios::TCSAFLUSH, &editor_config.orig_termios)
}
Run Code Online (Sandbox Code Playgroud) 我使用Rust中的Piston开发了一个迷宫游戏,以便自学图形/ UI编程.游戏大多数工作正常,但是当我使用大型迷宫运行它(例如120 x 72矩形)时,游戏会在几分钟后因内存分配错误而崩溃.
一个简化的例子如下:
extern crate graphics;
extern crate opengl_graphics;
extern crate piston;
extern crate piston_window;
use opengl_graphics::OpenGL;
use piston::event_loop::*;
use piston::input::*;
use piston_window::{PistonWindow, WindowSettings};
const BLACK: [f32; 4] = [0.0, 0.0, 0.0, 1.0];
const WHITE: [f32; 4] = [1.0, 1.0, 1.0, 1.0];
fn main() {
let opengl = OpenGL::V3_2;
let mut window: PistonWindow = WindowSettings::new("maze", [800, 600])
.opengl(opengl)
.exit_on_esc(true)
.build()
.unwrap();
let mut events = Events::new(EventSettings::new());
while let Some(event) = events.next(&mut window) {
if let Some(_args) = event.render_args() …Run Code Online (Sandbox Code Playgroud) rust ×3
atexit ×1
exit ×1
hashset ×1
python ×1
python-3.4 ×1
python-idle ×1
random ×1
rust-piston ×1