首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >*令人痛苦的*慢(超过十秒的`(+ 1 1)`)与语言“如何设计程序-开始学生”

*令人痛苦的*慢(超过十秒的`(+ 1 1)`)与语言“如何设计程序-开始学生”
EN

Stack Overflow用户
提问于 2016-05-29 18:01:06
回答 1查看 825关注 0票数 9

我刚刚安装了DrRacket,并试用了“如何设计程序-初学者”这门语言。

Racket - A programmable programming language

Racket - Getting Started

我运行(+ 1 1),它花了十多秒才显示出来:

代码语言:javascript
复制
Welcome to DrRacket, version 6.5 [3m].
Language: Beginning Student; memory limit: 128 MB.
2
> 

据我所知,我的安装几乎是“开箱即用”。

我想知道的是我的经历是否不寻常,

如果有任何明显的方法来排除故障

(我已经查看了周围的设置,没有发现任何明显的调整),

或者也许整个HTDP语言都被悄悄地抛弃了,或者别的什么…?

编辑1

我有这些文件:

代码语言:javascript
复制
/usr/share/racket $
find -iname "*htdp*.zo"
./pkgs/htdp-lib/lang/private/compiled/create-htdp-executable_rkt.zo
./pkgs/htdp-lib/lang/compiled/htdp-reader_rkt.zo
./pkgs/htdp-lib/lang/compiled/htdp-beginner-abbr-reader_rkt.zo
./pkgs/htdp-lib/lang/compiled/htdp-langs-save-file-prefix_rkt.zo
./pkgs/htdp-lib/lang/compiled/htdp-advanced-reader_rkt.zo
./pkgs/htdp-lib/lang/compiled/htdp-intermediate-lambda-reader_rkt.zo
./pkgs/htdp-lib/lang/compiled/htdp-advanced_rkt.zo
./pkgs/htdp-lib/lang/compiled/htdp-beginner-abbr_rkt.zo
./pkgs/htdp-lib/lang/compiled/htdp-intermediate_rkt.zo
./pkgs/htdp-lib/lang/compiled/htdp-intermediate-reader_rkt.zo
./pkgs/htdp-lib/lang/compiled/htdp-langs_rkt.zo
./pkgs/htdp-lib/lang/compiled/htdp-beginner_rkt.zo
./pkgs/htdp-lib/lang/compiled/htdp-intermediate-lambda_rkt.zo
./pkgs/htdp-lib/lang/compiled/htdp-beginner-reader_rkt.zo
./pkgs/htdp-doc/scribblings/htdp-langs/compiled/htdp-langs_scrbl.zo
./pkgs/htdp-doc/scribblings/htdp-langs/compiled/htdp-ptr_scrbl.zo
./pkgs/htdp-doc/htdp/compiled/htdp_scrbl.zo
./pkgs/htdp-doc/htdp/compiled/htdp-lib_scrbl.zo
./pkgs/htdp-doc/teachpack/htdp/scribblings/compiled/htdp_scrbl.zo
./pkgs/htdp-doc/teachpack/2htdp/scribblings/compiled/2htdp_scrbl.zo

编辑2- cpu和硬盘规格

CPU

代码语言:javascript
复制
$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model               : 28
model name      : Intel(R) Atom(TM) CPU N450   @ 1.66GHz
stepping        : 10
microcode       : 0x107
cpu MHz             : 1000.000
cache size      : 512 KB
physical id     : 0
siblings        : 2
core id             : 0
cpu cores       : 1
apicid              : 0
initial apicid  : 0
fpu                 : yes
fpu_exception   : yes
cpuid level     : 10
wp                  : yes
flags               : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts nopl aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm dtherm
bugs                :
bogomips        : 3325.00
clflush size    : 64
cache_alignment : 64
address sizes   : 32 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model               : 28
model name      : Intel(R) Atom(TM) CPU N450   @ 1.66GHz
stepping        : 10
microcode       : 0x107
cpu MHz             : 1000.000
cache size      : 512 KB
physical id     : 0
siblings        : 2
core id             : 0
cpu cores       : 1
apicid              : 1
initial apicid  : 1
fpu                 : yes
fpu_exception   : yes
cpuid level     : 10
wp                  : yes
flags               : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts nopl aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm dtherm
bugs                :
bogomips        : 3325.00
clflush size    : 64
cache_alignment : 64
address sizes   : 32 bits physical, 48 bits virtual
power management:

高清

代码语言:javascript
复制
$ sudo hdparm -I /dev/sda
/dev/sda:

ATA device, with non-removable media
    Model Number:       Hitachi HTS545016B9A300                 
    Serial Number:      100324PBPB06ECC0K6XL
    Firmware Revision:  PBBOC60F
    Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6; Revision: ATA8-AST T13 Project D1697 Revision 0b
Standards:
    Used: unknown (minor revision code 0x0028) 
    Supported: 8 7 6 5 
    Likely used: 8
Configuration:
    Logical                 max current
    cylinders       16383   16383
    heads                   16  16
    sectors/track   63      63
    --
    CHS current addressable sectors:   16514064
    LBA    user addressable sectors:  268435455
    LBA48  user addressable sectors:  312581808
    Logical/Physical Sector size:           512 bytes
    device size with M = 1024*1024:      152627 MBytes
    device size with M = 1000*1000:      160041 MBytes (160 GB)
    cache/buffer size  = 7208 KBytes (type=DualPortCache)
    Form Factor: 2.5 inch
    Nominal Media Rotation Rate: 5400
Capabilities:
    LBA, IORDY(can be disabled)
    Queue depth: 32
    Standby timer values: spec'd by Vendor, no device specific minimum
    R/W multiple sector transfer: Max = 16  Current = 16
    Advanced power management level: 254
    Recommended acoustic management value: 128, current value: 254
    DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
         Cycle time: min=120ns recommended=120ns
    PIO: pio0 pio1 pio2 pio3 pio4 
         Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
    Enabled Supported:
       *    SMART feature set
            Security Mode feature set
       *    Power Management feature set
       *    Write cache
       *    Look-ahead
       *    Host Protected Area feature set
       *    WRITE_BUFFER command
       *    READ_BUFFER command
       *    NOP cmd
       *    DOWNLOAD_MICROCODE
       *    Advanced Power Management feature set
            Power-Up In Standby feature set
       *    SET_FEATURES required to spinup after power up
            SET_MAX security extension
            Automatic Acoustic Management feature set
       *    48-bit Address feature set
       *    Device Configuration Overlay feature set
       *    Mandatory FLUSH_CACHE
       *    FLUSH_CACHE_EXT
       *    SMART error logging
       *    SMART self-test
       *    General Purpose Logging feature set
       *    WRITE_{DMA|MULTIPLE}_FUA_EXT
       *    64-bit World wide name
       *    IDLE_IMMEDIATE with UNLOAD
       *    WRITE_UNCORRECTABLE_EXT command
       *    {READ,WRITE}_DMA_EXT_GPL commands
       *    Segmented DOWNLOAD_MICROCODE
       *    Gen1 signaling speed (1.5Gb/s)
       *    Gen2 signaling speed (3.0Gb/s)
       *    Native Command Queueing (NCQ)
       *    Host-initiated interface power management
       *    Phy event counters
       *    NCQ priority information
            Non-Zero buffer offsets in DMA Setup FIS
       *    DMA Setup Auto-Activate optimization
            Device-initiated interface power management
            In-order data delivery
       *    Software settings preservation
       *    SMART Command Transport (SCT) feature set
       *    SCT Write Same (AC2)
       *    SCT Error Recovery Control (AC3)
       *    SCT Features Control (AC4)
       *    SCT Data Tables (AC5)
Security: 
    Master password revision code = 65534
        supported
    not enabled
    not locked
        frozen
    not expired: security count
        supported: enhanced erase
    64min for SECURITY ERASE UNIT. 66min for ENHANCED SECURITY ERASE UNIT. 
Logical Unit WWN Device Identifier: 5000cca5ffc040a7
    NAA             : 5
    IEEE OUI    : 000cca
    Unique ID   : 5ffc040a7
Checksum: correct

编辑3次命令行

在HTDP中运行(+ 1 1) -初学者3次-超过5秒。

代码语言:javascript
复制
$ time racket -t racket_HTDP_beginner.rkt
2
5.60user 1.04system 0:08.46elapsed 78%CPU (0avgtext+0avgdata 127968maxresident)k
5496inputs+0outputs (46major+40955minor)pagefaults 0swaps

$ time racket -t racket_HTDP_beginner.rkt
2
5.51user 0.67system 0:06.71elapsed 92%CPU (0avgtext+0avgdata 128124maxresident)k
24inputs+0outputs (0major+41790minor)pagefaults 0swaps

$ time racket -t racket_HTDP_beginner.rkt
2
5.41user 0.67system 0:06.55elapsed 92%CPU (0avgtext+0avgdata 128180maxresident)k
0inputs+0outputs (0major+36683minor)pagefaults 0swaps

#lang racket中运行了3次(+ 1 1) -- 2秒多一点。

代码语言:javascript
复制
$ time racket -t racket_lang_racket.rkt
2
2.13user 0.25system 0:02.71elapsed 87%CPU (0avgtext+0avgdata 64996maxresident)k
0inputs+0outputs (0major+12437minor)pagefaults 0swaps

$ time racket -t racket_lang_racket.rkt
2
2.15user 0.25system 0:02.63elapsed 91%CPU (0avgtext+0avgdata 61700maxresident)k
0inputs+0outputs (0major+15853minor)pagefaults 0swaps

$ time racket -t racket_lang_racket.rkt
2
2.28user 0.29system 0:02.89elapsed 89%CPU (0avgtext+0avgdata 61500maxresident)k
0inputs+0outputs (0major+15015minor)pagefaults 0swaps

编辑4

在lang HTDP中运行free -h的同时每秒运行(+ 1 1) -初学者

(除了DrRacket和我的基本系统(即窗口管理器等),没有运行任何其他应用程序)

(顺便说一下,这是鱼壳):

http://pastebin.com/2RdZAuXj

在这一点上,我不得不杀了DrRacket,因为一切都冻结了。

不管怎样,是的,很明显,它在漏水。

每次我在DrRacket中重新运行代码时,内存使用率都会上升并保持不变。

我只跑了二十几分钟……两岁左右(?)更多次数

(那么总共可能有30岁左右吧?)

当它开始接近极限的时候

我杀了它来解冻系统。

我想我应该用普通的#lang racket试一下,看看会发生什么……

编辑5

是的,它以同样的方式泄漏:

http://pastebin.com/373PNnY7

EN

回答 1

Stack Overflow用户

发布于 2016-05-29 18:52:11

我90%确定你不得不等待的原因是你的球拍安装没有正确完成。

在安装期间,需要运行程序setup-plt。它将所有球拍文件(.rkt)预编译成所谓的zo文件。如果省略了这一步,那么DrRacket会在第一次需要文件时为您进行编译。

在你的情况下(我猜)这是你第一次使用初学者语言,所以所有与它相关的文件都需要编译。这需要一段时间。

最好的解决方案是使用http://download.racket-lang.org/的官方安装程序,它们都包含预编译的zo文件。

如果您碰巧使用过这样的安装程序,那么再试一次-如果问题仍然存在-提交一个错误报告(使用DrRacket帮助菜单中的错误报告)。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37508535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档