unofficial mirror of bug-guile@gnu.org 
 help / color / mirror / Atom feed
From: Thien-Thi Nguyen <ttn@surf.glug.org>
Cc: bug-guile@gnu.org
Subject: Re: substantial performance loss when running long-lived or computationally intensive programs
Date: Tue, 28 Oct 2003 16:46:28 +0100	[thread overview]
Message-ID: <E1AEW3A-0006TZ-00@surf.glug.org> (raw)
In-Reply-To: <20030505.223626.84190828.wells@email.mot.com> (michaelawells@motorola.com)

   From: "Michael A. Wells" <michaelawells@motorola.com>
   Date: Mon, 05 May 2003 22:36:26 -0500 (CDT)

   Although this problem is present in Guile-1.6.4, the problem dates
   back to at least Guile 1.4.

thanks for the bug report.  i have started to clean up the 1.4.x branch
(in cvs) as a result.  the following functions have been fixed to date:

 scm_getcwd
 scm_readlink
 scm_getgroups
 scm_fill_sockaddr
 scm_regexp_exec
 scm_localtime
 scm_mktime
 scm_strftime

i expect to finish the audit for the 1.4.1.97 release.  please feel
free to share further observations (in case i miss something).

fyi, below is a simple program i use like so: "guile -s stress.scm" to
eyeball-check for improved behavior (before/after changing the function
in question).

thi


[cc trimmed]

____________________________________________
(define (report)
  (format #t "~A : ~A\n"
          (strftime "%Y-%m-%d %H:%M:%S" (localtime (current-time)))
          (assq-ref (gc-stats) 'bytes-malloced)))

;;- (define stress getcwd)

;;- (define stress getgroups)

;;- (define (stress)
;;-   ;; fports.c -- "fport_close"
;;-   ;; ports.c -- "scm_remove_from_port_table"
;;-   (with-output-to-string (lambda ()
;;-                            (display "1234567890")
;;-                            (display "1234567890"))))

;;- (define *token* (make-regexp "^[A-Za-z0-9_]*"))
;;- 
;;- (define (stress)
;;-   ;; libguile/regex-posix.c -- "scm_regexp_exec"
;;-   (regexp-exec *token* "foo"))

(define now (localtime (current-time)))

(define (stress)
  (strftime "%Y-%m-%d %H:%M:%S" now))

(report)
(let loop ((n 0))
  (stress) (stress) (stress) (stress) (stress)
  (stress) (stress) (stress) (stress) (stress)
  (if (= 0 n)
      (begin (report) (loop 100000))
      (loop (1- n))))


_______________________________________________
Bug-guile mailing list
Bug-guile@gnu.org
http://mail.gnu.org/mailman/listinfo/bug-guile


      parent reply	other threads:[~2003-10-28 15:46 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-06  3:36 substantial performance loss when running long-lived or computationally intensive programs Michael A. Wells
2003-05-14 11:14 ` Han-Wen Nienhuys
2003-05-14 14:36   ` Mikael Djurfeldt
2003-10-28 15:46 ` Thien-Thi Nguyen [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E1AEW3A-0006TZ-00@surf.glug.org \
    --to=ttn@surf.glug.org \
    --cc=bug-guile@gnu.org \
    --cc=ttn@glug.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).