
1 abc950309 2017-02-09 17:53:43 +08:00 刚刚重启完电脑,表示不作死就不会死………… 这是什么原理啊………… |
2 sleshep 2017-02-09 17:57:42 +08:00 bytes 输入数字表示创建一个长度为此数字的缓冲区, 当前时间戳很大,所以缓冲区很大,不就内存溢出了, 那不叫泄露,不要乱写标题 |
3 binux 2017-02-09 18:03:19 +08:00 python3 的 bytes(n) 的意思是,创建一个 size 为 n 的对象 |
4 karlakte 2017-02-09 18:07:15 +08:00 这就嘬死 不叫泄漏 |
5 phrack 2017-02-09 18:11:16 +08:00 via Android 申请太多内存了。 也遇到过,感兴趣的是,为什么没有一个机制强行停止这个操作,当时一执行直接爆炸,按啥都没卵用。 |
6 BruceAuyeung 2017-02-09 18:24:51 +08:00 via Android @phrack ulimit |
7 aprikyblue 2017-02-09 18:26:29 +08:00 你先查查啥叫内存泄漏 |
8 Mirana 2017-02-09 18:56:14 +08:00 oom? |
9 ericbize 2017-02-09 18:57:41 +08:00 |
1 yanchao7511461 2017-02-09 18:58:45 +08:00 应该是内存耗完,不是泄漏 |
11 ericbize 2017-02-09 19:00:07 +08:00 楼主,要 python 3 吗 ? |
12 longaiwp 2017-02-09 19:18:14 +08:00 这是个鬼泄露啊,这明显是申请过多好嘛 |
13 est 2017-02-09 19:26:48 +08:00 1. 你 bytes() 姿势不对 2. 有不爆炸的内存泄露吗? |
14 a87150 2017-02-09 19:37:37 +08:00 我还以为是什么 bug ,原来是自己作死 |
15 wxjeacen 2017-02-09 20:04:18 +08:00 确实是自己作死。 |
16 weyou 2017-02-09 21:05:33 +08:00 via Android 没炸伤就好~ |
17 kn007 2017-02-09 21:09:22 +08:00 作死溢出。。 |
18 lhbc 2017-02-09 21:15:43 +08:00 楼主你穿越回 1970 年 1 月 1 号就没有这个 bug 了 |
19 neurocomputing 2017-02-09 21:23:14 +08:00 是啊,这不叫泄露,这叫作死 |
20 orcusfox 2017-02-09 21:33:40 +08:00 也就 1.5 个 G ?其实还好吧 |
21 j5shi 2017-02-09 21:34:58 +08:00 via iPhone 现在有太多没有计算机背景的“程序员”,对计算机底层一窍不通,并对发明轮子乐此不疲。 |
22 JRight 2017-02-09 21:36:17 +08:00 楼主不要太受打击哈,慢慢进步~ |
23 seiuneko 2017-02-09 23:17:20 +08:00 |
24 wohenyingyu02 2017-02-10 00:00:09 +08:00 via iPhone @j5shi 我学计算机的同学都没有当程序员…… |
26 enenaaa 2017-02-10 09:36:36 +08:00 win7 4G 内存,只是内存耗尽卡顿一段时间。 这样看来还是 windows 稳啊 |
27 Citrus 2017-02-10 09:55:56 +08:00 If it is an integer, the array will have that size and will be initialized with null bytes. 所以也就是 1486656000 bytes 差不多 1.384556293 GB ,不会炸啊=。= |
28 j5shi 2017-02-10 10:27:19 +08:00 via iPhone @wohenyingyu02 不懂你在说什么,我可没说学计算机的都要去当程序员。 |
29 j5shi 2017-02-10 10:29:22 +08:00 via iPhone @sl0000 比如不懂 C (或者 Clang 的)的就可以称为“没有计算机背景”。异或可以这么理解,能把这个称为“内存泄露”的,就是没有计算机背景。 |
30 wohenyingyu02 2017-02-10 10:33:12 +08:00 @j5shi 学计算机的都不去当程序员,自然只能没有背景的当。我就是你说的那种“程序员”,我学会计法律的,但是我比我认识的大多数学计算机的同学都混得好,可能是因为我学校烂吧。 |
31 xvx 2017-02-10 10:36:09 +08:00 via iPhone 这叫内存泄漏…… |
32 ericbize 2017-02-10 10:46:03 +08:00 @F0nebula python 3.5 一直在跑没死机 (我的不是虚拟机) <a href="http://imgur.com/B04dVyO"><img src=" " title="source: imgur.com" /></a><a href="http://imgur.com/a2pgZV8"><img src=" " title="source: imgur.com" /></a>没事啊,就是不知道要跑到什么时候 楼主,有升级内存的理由了 。 |
33 ericbize 2017-02-10 10:51:35 +08:00 |
34 treo 2017-02-10 10:52:20 +08:00 100 年后、 1000 年后的计算机碰到这种场景还会卡顿吗 换句话说,计算机性能的增长能赶上 timestamp 的增长速度吗 |
35 j5shi 2017-02-10 10:52:54 +08:00 via iPhone @wohenyingyu02 我可没说计算机背景指的是 需要 CS 相关教育经历,你缺的是自信。 |
37 chez 2017-02-10 11:10:46 +08:00 Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> print(b_time) MemoryError python3.6 就报个内存错误 |
38 ryd994 2017-02-10 11:12:56 +08:00 难道我用的是假 Python ?还是说我用的假 Linux ? Fedora 说这锅 Python 不背 ![]() @treo 你想多了,早就根本不虚了。因为有黑科技叫 overcommit 。 kernel 早就看穿了你们分配了这么多内存一定用不完 |
39 nilai 2017-02-10 14:11:30 +08:00 python3 测试有效。 |
41 lostsquirrelX 2017-02-10 14:35:50 +08:00 应该是死在 print 上面 |
42 Felldeadbird 2017-02-10 14:56:32 +08:00 有意思!弄成恶作剧发给同事、 |
43 hezhile 2017-02-10 15:06:25 +08:00 Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:27:37) [MSC v.1900 64 bit (AMD64)] on win32 Type "copyright", "credits" or "license()" for more information. >>> import time >>> b_time = bytes(int(time.time())) >>> print(b_time) Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> print(b_time) File "C:\Users\gilot\AppData\Local\Programs\Python\Python35\lib\idlelib\PyShell.py", line 1343, in write return self.shell.write(s, self.tags) OverflowError: cannot serialize a string larger than 4GiB >>> 在 process explorer 里面, pythonw.exe 的 private bytes 确实飙升到了 7.3G (我的电脑内存只有 8G ) 操作系统是 win10 pro ,有大概 10 秒钟的时间整个系统没有反应 |
44 wuruxu 2017-02-10 15:23:00 +08:00 怎么爆炸了,一点反应也没有 ``` xyz@debian:~$ python Python 2.7.9 (default, Jun 29 2016, 13:08:31) [GCC 4.9.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import time >>> b_time = bytes(int(time.time())) >>> print(b_time) 1486711277 >>> ls Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'ls' is not defined >>> xyz@debian:~$ ``` |
45 kkk330 2017-02-10 15:50:36 +08:00 via iPhone 就像 38 楼说的,我也记得 Linux 下内存或者硬盘空间都可以申请超过实际大小(并不会真的分配给你,感觉炸了说不通啊 |
46 langjiyuan 2017-02-10 20:49:51 +08:00 已 get 可以忽悠 有些自大的舍友去调试了 |
47 zhjits 2017-02-11 14:03:12 +08:00 http://imgur.com/a/r14mh 这个内存泄漏可能是真的…… |
48 zhjits 2017-02-11 14:05:01 +08:00 |
49 zhjits 2017-02-11 14:10:34 +08:00 |
50 q397064399 2017-02-11 21:45:56 +08:00 内存泄露是指程序申请的堆内存没有被正常回收导致内存泄露 |
51 Khlieb 2017-02-12 08:50:35 +08:00 via Android 熊叔: boom |
52 cxbats 2017-02-12 11:32:10 +08:00 via Android 这也叫泄漏?那 malloc(1000000000) 是不是也叫内存泄漏 |