| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Определение количества используемой памяти.

Определение количества используемой памяти.

Ответ
Поиск в этой теме
Непрочитано 19.03.2010, 15:25 #1
Определение количества используемой памяти.
solo123
 
Регистрация: 19.08.2009
Сообщений: 91

Какое максимальное количество локальных переменных должно присутствовать в одной функциии, и как определить
перегружена ли память интерпритатора? Заранее благодарен, Илья.
Просмотров: 4121
 
Непрочитано 19.03.2010, 23:08
#2
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Теоритически - бесконечно, есть ограничения на наборы (ssget) - в зависимости от версии Акада. В хорошой лисп программе количество локальных переменных должно стремится к нулю - больше списками оперируй. В автолиспе "криво" реализована рекурсия (судя по всему через стек) - около 20000 итераций и затыкается. Еще одновременно плюсом и минусом (в зависимости от ситуации) автолиспа являеться наследие имен от внешней функции - то есть она обрабатываеться даже если не передавалась на прямую, но "неважно" реализованны пространства имен.
По второму вопросу - програмно вроде никак (если только не прикинуть каков объем занятой памяти, посредством просмотра всех объявленых) - теоритически там иллюзия бесконечной памяти. По современным меркам по этому поводу не часто приходиться париться - если что-то уж очень большое (или много раз) переопределяешь - вызывай (gc),
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 20.03.2010, 18:02
#3
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от Дима_ Посмотреть сообщение
В хорошой лисп программе количество локальных переменных должно стремится к нулю - больше списками оперируй.
Вот кстати, может быть, кто-то замечал такое явление: если сохранять промежуточные преобразования списка в переменной, программа работает быстрее? Первый раз я с этим столкнулся, когда писал вот эту функцию:
Код:
[Выделить все]
(defun Spline_getBoundingBox (obj   /       c_pt_lst
         cd_pt_lst   ex_pt_lst   cls_pt_lst
         p_lst   divid       spline_extr
        )

  (defun spline_extr (obj pst / it)
       ;|
Функция поиска экстремума сплайна на основе метода Ньютона.
Исходные параметры:
 obj - VLA-OBJECT или ENAME вида: #<VLA-OBJECT IAcadSpline 05548644> или <Entity name: 7ef65fb8>
 pst - параметр сплайна в точке начального приближения к экстремуму, действительное число
Возвращаемые значения:
 Список вида: (параметр1 параметр2 параметр3)
 параметр 1(2,3) может быть действительным положительным числом или nil, если экстремум
 не был найден (метод не сошелся).
 Примеры: (137.199 173.728 147.543)
   (nil nil 219.258)
Пример вызова:
(spline_extr
  (setq obj
  (vlax-ename->vla-object
    (car (entsel "\nВыберите сплайн:"))
  ) ;_ end of vlax-ename->vla-object
  ) ;_ end of setq
  (vlax-curve-getParamAtPoint
    obj
    (getpoint "\nУкажите точку на сплайне:")
  ) ;_ end of vlax-curve-getParamAtPoint
) ;_ end of spline_extr
|;
    (if pst
      (mapcar
 (function
   (lambda (cadrs / f df p)
     (setq it 0
    p  pst
     ) ;_ end of setq
     (while (not (or (equal f 0.0 1.0e-008)
       (equal df 0.0 1.0e-008)
       (> it 10)
   ) ;_ end of or
     ) ;_ end of not
       (setq it (1+ it)
      f  ((eval cadrs) (vlax-curve-getfirstderiv obj p))
      df ((eval cadrs) (vlax-curve-getsecondderiv obj p))
      p  (if (equal df 0.0 1.0e-008)
    p
    (- p (/ f df))
         ) ;_ end of if
       ) ;_ end of setq
     ) ;_ end of while
     (if (or (< p (vlax-curve-getStartParam obj))
      (> p (vlax-curve-getEndParam obj))
      (> it 10)
  ) ;_ end of or
       nil
       p
     ) ;_ end of if
   ) ;_ end of lambda
 ) ;_ end of function
 (list car cadr caddr)
      ) ;_ end of mapcar
    ) ;_ end of if
  ) ;_ end of defun
  (defun divid (pt1 pt2 n)
        ;|
    Функция нахождения точек, делящих отрезок
    на заданное количество равных частей.
Исходные параметры:
    pt1 - начало отрезка
    pt2 - конец отрезка
    n - количество частей
Пример вызова:
    (divid '(0.0 0.0 0.0) '(15.0 15.0 15.0) 3)
    (divid '(0.0 0.0) '(12.0 12.0) 4)
Возвращаемое значение - список точек вида:
    ((5.0 5.0 5.0) (10.0 10.0 10.0))
    ((3.0 3.0) (6.0 6.0) (9.0 9.0))
|;
    (mapcar
      '(lambda (c)
  (mapcar '(lambda (a b) (+ (* c (/ (- a b) n)) b)) pt2 pt1)
       ) ;_ end of lambda
      (
       (lambda (d / rez)
  (repeat (setq d (1- d))
    (setq rez (cons d rez)
   d   (1- d)
    ) ;_ end of setq
  ) ;_ end of repeat
  rez
       ) ;_ end of lambda
 n
      )
    ) ;_ end of mapcar
  ) ;_ end of defun
  (if (= (type obj) 'ENAME)
    (setq obj (vlax-ename->vla-object obj))
  ) ;_ end of if
  (setq c_pt_lst   (mapcar
       '(lambda (x)
   (vlax-safearray->list
     (vlax-variant-value
       (vla-getcontrolpoint obj x)
     ) ;_ end of vlax-variant-value
   ) ;_ end of vlax-safearray->list
        ) ;_ end of lambda
       ((lambda (/ n lst)
   (repeat
     (1- (setq
    n (1- (vla-get-NumberOfControlPoints obj))
         ) ;_ end of setq
     ) ;_ end of 1-
      (setq
        n  (1- n)
        lst (cons n lst)
      ) ;_ end of setq
   ) ;_ end of repeat
   lst
        ) ;_ end of lambda
       )
     ) ;_ end of mapcar
 cd_pt_lst  ((lambda (lst / rez)
        (while lst
   (if (cadr lst)
     (setq
       rez (append
      rez
      (cons (car lst)
     (divid (car lst) (cadr lst) 3)
      ) ;_ end of cons
    ) ;_ end of append
     ) ;_ end of setq
     (setq rez (append rez lst))
   ) ;_ end of if
   (setq lst (cdr lst))
        ) ;_ end of while
        rez
      ) ;_ end of lambda
       c_pt_lst
     )
 cls_pt_lst (mapcar
       '(lambda (pt)
   (vlax-curve-getclosestpointto obj pt)
        ) ;_ end of lambda
       cd_pt_lst
     ) ;_ end of mapcar
 p_lst    (vl-remove-if
       'not
       (apply
         'append
         (mapcar
    (function (lambda (x)
         (spline_extr
           obj
           (vlax-curve-getParamAtPoint obj x)
         ) ;_ end of spline_extr
       ) ;_ end of lambda
    ) ;_ end of function
    cls_pt_lst
         ) ;_ end of mapcar
       ) ;_ end of apply
     ) ;_ end of vl-remove-if
 ex_pt_lst  (append
       (list
         (vlax-curve-getStartPoint obj)
         (vlax-curve-getEndPoint obj)
       ) ;_ end of list
       (mapcar
         (function
    (lambda (p) (vlax-curve-getPointAtParam obj p))
         ) ;_ end of function
         p_lst
       ) ;_ end of mapcar
     ) ;_ end of append
  ) ;_ end of setq
  (mapcar
    (function
      (lambda (mins)
 (mapcar
   (function (lambda (cadrs)
        (apply (function mins)
        (mapcar (function cadrs) ex_pt_lst)
        ) ;_ end of apply
      ) ;_ end of lambda
   ) ;_ end of function
   (list car cadr caddr)
 ) ;_ end of mapcar
      ) ;_ end of lambda
    ) ;_ end of function
    (list min max)
  ) ;_ end of mapcar
) ;_ end of defun
В ней преобразования поэтапно сохраняются в переменных c_pt_lst, cd_pt_lst, cls_pt_lst, p_lst, ex_pt_lst - использовал их для отладки программы. Когда же я от них избавился, то программа стала ощутимо медленнее работать! То есть, я хочу сказать, что не всегда стремление избавиться от локальных переменных есть хорошо...
Do$ вне форума  
 
Непрочитано 20.03.2010, 19:27
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,832


"ощутимо" - как-то малоинформативно... Попробуй перевести все вызовы ' в function; откомпилируй в fas/vlx и попробуй еще раз.
Кстати, для полноценной проверки времени код benchmark уже на форуме был Да и у меня на сайте тоже лежит
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.03.2010, 18:52
#5
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Я уже где-то в паралельной ветке писал что производительность никогда не была "коньком" лиспа. Масштабируемость, склонность к модификации и дополнению, а также скорость написание кода (при условии что, вы пишите "по лисповски" и умеете это делать) - в этом его сила. Чем выше уровень языка (чем он дальше от компьтера) - тем ниже производительность.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 22.03.2010, 09:13
#6
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
"ощутимо" - как-то малоинформативно... Попробуй перевести все вызовы ' в function; откомпилируй в fas/vlx и попробуй еще раз.
Кстати, для полноценной проверки времени код benchmark уже на форуме был Да и у меня на сайте тоже лежит
Да тут даже benchmark не нужен.
Вот первый код, в нем промежуточный результат преобразований списка сохраняется в переменных (заменил все апострофы на quote и function):

Код:
[Выделить все]
(defun c:stest (/ Spline_getBoundingBox)
  (defun Spline_getBoundingBox (obj
    /
    c_pt_lst
    cd_pt_lst
    ex_pt_lst
    cls_pt_lst
    p_lst
    divid
    spline_extr
          )
    (defun spline_extr (obj pst / it)
         ;|
Функция поиска экстремума сплайна на основе метода Ньютона.
Исходные параметры:
 obj - VLA-OBJECT или ENAME вида: #<VLA-OBJECT IAcadSpline 05548644> или <Entity name: 7ef65fb8>
 pst - параметр сплайна в точке начального приближения к экстремуму, действительное число
Возвращаемые значения:
 Список вида: (параметр1 параметр2 параметр3)
 параметр 1(2,3) может быть действительным положительным числом или nil, если экстремум
 не был найден (метод не сошелся).
 Примеры: (137.199 173.728 147.543)
   (nil nil 219.258)
Пример вызова:
(spline_extr
  (setq obj
  (vlax-ename->vla-object
    (car (entsel "\nВыберите сплайн:"))
  ) ;_ end of vlax-ename->vla-object
  ) ;_ end of setq
  (vlax-curve-getParamAtPoint
    obj
    (getpoint "\nУкажите точку на сплайне:")
  ) ;_ end of vlax-curve-getParamAtPoint
) ;_ end of spline_extr
|;
      (if pst
 (mapcar
   (function
     (lambda (cadrs / f df p)
       (setq it 0
      p  pst
       ) ;_ end of setq
       (while (not (or (equal f 0.0 1.0e-008)
         (equal df 0.0 1.0e-008)
         (> it 10)
     ) ;_ end of or
       ) ;_ end of not
  (setq it (1+ it)
        f  ((eval cadrs) (vlax-curve-getfirstderiv obj p))
        df ((eval cadrs) (vlax-curve-getsecondderiv obj p))
        p  (if (equal df 0.0 1.0e-008)
      p
      (- p (/ f df))
    ) ;_ end of if
  ) ;_ end of setq
       ) ;_ end of while
       (if (or (< p (vlax-curve-getStartParam obj))
        (> p (vlax-curve-getEndParam obj))
        (> it 10)
    ) ;_ end of or
  nil
  p
       ) ;_ end of if
     ) ;_ end of lambda
   ) ;_ end of function
   (list car cadr caddr)
 ) ;_ end of mapcar
      ) ;_ end of if
    ) ;_ end of defun
    (defun divid (pt1 pt2 n)
   ;|
    Функция нахождения точек, делящих отрезок
    на заданное количество равных частей.
Исходные параметры:
    pt1 - начало отрезка
    pt2 - конец отрезка
    n - количество частей
Пример вызова:
    (divid '(0.0 0.0 0.0) '(15.0 15.0 15.0) 3)
    (divid '(0.0 0.0) '(12.0 12.0) 4)
Возвращаемое значение - список точек вида:
    ((5.0 5.0 5.0) (10.0 10.0 10.0))
    ((3.0 3.0) (6.0 6.0) (9.0 9.0))
|;
      (mapcar
 (function
   (lambda (c)
     (mapcar (function (lambda (a b) (+ (* c (/ (- a b) n)) b)))
      pt2
      pt1
     ) ;_ end of mapcar
   ) ;_ end of lambda
 ) ;_ end of function
 (
  (lambda (d / rez)
    (repeat (setq d (1- d))
      (setq rez (cons d rez)
     d   (1- d)
      ) ;_ end of setq
    ) ;_ end of repeat
    rez
  ) ;_ end of lambda
   n
 )
      ) ;_ end of mapcar
    ) ;_ end of defun
    (if (= (type obj) (quote ename))
      (setq obj (vlax-ename->vla-object obj))
    ) ;_ end of if
    (setq c_pt_lst   (mapcar
         (function (lambda (x)
       (vlax-safearray->list
         (vlax-variant-value
           (vla-getcontrolpoint obj x)
         ) ;_ end of vlax-variant-value
       ) ;_ end of vlax-safearray->list
     ) ;_ end of lambda
         ) ;_ end of function
         ((lambda (/ n lst)
     (repeat
       (1- (setq
      n (1- (vla-get-NumberOfControlPoints obj))
    ) ;_ end of setq
       ) ;_ end of 1-
        (setq
          n   (1- n)
          lst (cons n lst)
        ) ;_ end of setq
     ) ;_ end of repeat
     lst
   ) ;_ end of lambda
         )
       ) ;_ end of mapcar
   cd_pt_lst  ((lambda (lst / rez)
   (while lst
     (if (cadr lst)
       (setq
         rez (append
        rez
        (cons (car lst)
       (divid (car lst) (cadr lst) 3)
        ) ;_ end of cons
      ) ;_ end of append
       ) ;_ end of setq
       (setq rez (append rez lst))
     ) ;_ end of if
     (setq lst (cdr lst))
   ) ;_ end of while
   rez
        ) ;_ end of lambda
         c_pt_lst
       )
   cls_pt_lst (mapcar
         (function (lambda (pt)
       (vlax-curve-getclosestpointto obj pt)
     ) ;_ end of lambda
         ) ;_ end of function
         cd_pt_lst
       ) ;_ end of mapcar
   p_lst      (vl-remove-if
         (function not)
         (apply
    (function append)
    (mapcar
      (function (lambda (x)
           (spline_extr
      obj
      (vlax-curve-getParamAtPoint obj x)
           ) ;_ end of spline_extr
         ) ;_ end of lambda
      ) ;_ end of function
      cls_pt_lst
    ) ;_ end of mapcar
         ) ;_ end of apply
       ) ;_ end of vl-remove-if
   ex_pt_lst  (append
         (list
    (vlax-curve-getStartPoint obj)
    (vlax-curve-getEndPoint obj)
         ) ;_ end of list
         (mapcar
    (function
      (lambda (p) (vlax-curve-getPointAtParam obj p))
    ) ;_ end of function
    p_lst
         ) ;_ end of mapcar
       ) ;_ end of append
    ) ;_ end of setq
    (mapcar
      (function
 (lambda (mins)
   (mapcar
     (function (lambda (cadrs)
   (apply (function mins)
          (mapcar (function cadrs) ex_pt_lst)
   ) ;_ end of apply
        ) ;_ end of lambda
     ) ;_ end of function
     (list car cadr caddr)
   ) ;_ end of mapcar
 ) ;_ end of lambda
      ) ;_ end of function
      (list min max)
    ) ;_ end of mapcar
  ) ;_ end of defun
  (Spline_getBoundingBox (car (entsel "\nSelect spline:")))
) ;_ end of defun

А вот второй, полученный из первого, но от промежуточных сохранений избавился:

Код:
[Выделить все]
(defun c:stest1 (/ Spline_getBoundingBox)
  (defun Spline_getBoundingBox (obj
    /
    p_lst
    divid
    spline_extr
          )
    (defun spline_extr (obj pst / it)
         ;|
Функция поиска экстремума сплайна на основе метода Ньютона.
Исходные параметры:
 obj - VLA-OBJECT или ENAME вида: #<VLA-OBJECT IAcadSpline 05548644> или <Entity name: 7ef65fb8>
 pst - параметр сплайна в точке начального приближения к экстремуму, действительное число
Возвращаемые значения:
 Список вида: (параметр1 параметр2 параметр3)
 параметр 1(2,3) может быть действительным положительным числом или nil, если экстремум
 не был найден (метод не сошелся).
 Примеры: (137.199 173.728 147.543)
   (nil nil 219.258)
Пример вызова:
(spline_extr
  (setq obj
  (vlax-ename->vla-object
    (car (entsel "\nВыберите сплайн:"))
  ) ;_ end of vlax-ename->vla-object
  ) ;_ end of setq
  (vlax-curve-getParamAtPoint
    obj
    (getpoint "\nУкажите точку на сплайне:")
  ) ;_ end of vlax-curve-getParamAtPoint
) ;_ end of spline_extr
|;
      (if pst
 (mapcar
   (function
     (lambda (cadrs / f df p)
       (setq it 0
      p  pst
       ) ;_ end of setq
       (while (not (or (equal f 0.0 1.0e-008)
         (equal df 0.0 1.0e-008)
         (> it 10)
     ) ;_ end of or
       ) ;_ end of not
  (setq it (1+ it)
        f  ((eval cadrs) (vlax-curve-getfirstderiv obj p))
        df ((eval cadrs) (vlax-curve-getsecondderiv obj p))
        p  (if (equal df 0.0 1.0e-008)
      p
      (- p (/ f df))
    ) ;_ end of if
  ) ;_ end of setq
       ) ;_ end of while
       (if (or (< p (vlax-curve-getStartParam obj))
        (> p (vlax-curve-getEndParam obj))
        (> it 10)
    ) ;_ end of or
  nil
  p
       ) ;_ end of if
     ) ;_ end of lambda
   ) ;_ end of function
   (list car cadr caddr)
 ) ;_ end of mapcar
      ) ;_ end of if
    ) ;_ end of defun
    (defun divid (pt1 pt2 n)
   ;|
    Функция нахождения точек, делящих отрезок
    на заданное количество равных частей.
Исходные параметры:
    pt1 - начало отрезка
    pt2 - конец отрезка
    n - количество частей
Пример вызова:
    (divid '(0.0 0.0 0.0) '(15.0 15.0 15.0) 3)
    (divid '(0.0 0.0) '(12.0 12.0) 4)
Возвращаемое значение - список точек вида:
    ((5.0 5.0 5.0) (10.0 10.0 10.0))
    ((3.0 3.0) (6.0 6.0) (9.0 9.0))
|;
      (mapcar
 (function
   (lambda (c)
     (mapcar (function (lambda (a b) (+ (* c (/ (- a b) n)) b)))
      pt2
      pt1
     ) ;_ end of mapcar
   ) ;_ end of lambda
 ) ;_ end of function
 (
  (lambda (d / rez)
    (repeat (setq d (1- d))
      (setq rez (cons d rez)
     d   (1- d)
      ) ;_ end of setq
    ) ;_ end of repeat
    rez
  ) ;_ end of lambda
   n
 )
      ) ;_ end of mapcar
    ) ;_ end of defun
    (if (= (type obj) (quote ename))
      (setq obj (vlax-ename->vla-object obj))
    ) ;_ end of if
    (mapcar
      (function
 (lambda (mins)
   (mapcar
     (function
       (lambda (cadrs)
  (apply (function mins)
         (mapcar (function cadrs)
          (append
     (list
       (vlax-curve-getStartPoint obj)
       (vlax-curve-getEndPoint obj)
     ) ;_ end of list
     (mapcar
       (function
         (lambda (p) (vlax-curve-getPointAtParam obj p))
       ) ;_ end of function
       (vl-remove-if
         (function not)
         (apply
           (function append)
           (mapcar
      (function (lambda (x)
           (spline_extr
             obj
             (vlax-curve-getParamAtPoint obj x)
           ) ;_ end of spline_extr
         ) ;_ end of lambda
      ) ;_ end of function
      (mapcar
        (function (lambda (pt)
             (vlax-curve-getclosestpointto obj pt)
           ) ;_ end of lambda
        ) ;_ end of function
        ((lambda (lst / rez)
           (while lst
      (if (cadr lst)
        (setq
          rez (append
         rez
         (cons (car lst)
        (divid (car lst) (cadr lst) 3)
         ) ;_ end of cons
       ) ;_ end of append
        ) ;_ end of setq
        (setq rez (append rez lst))
      ) ;_ end of if
      (setq lst (cdr lst))
           ) ;_ end of while
           rez
         ) ;_ end of lambda
          (mapcar
            (function (lambda (x)
          (vlax-safearray->list
            (vlax-variant-value
              (vla-getcontrolpoint obj x)
            ) ;_ end of vlax-variant-value
          ) ;_ end of vlax-safearray->list
        ) ;_ end of lambda
            ) ;_ end of function
            ((lambda (/ n lst)
        (repeat
          (1- (setq
         n (1- (vla-get-NumberOfControlPoints obj))
       ) ;_ end of setq
          ) ;_ end of 1-
           (setq
             n   (1- n)
             lst (cons n lst)
           ) ;_ end of setq
        ) ;_ end of repeat
        lst
      ) ;_ end of lambda
            )
          ) ;_ end of mapcar
        )
      ) ;_ end of mapcar
           ) ;_ end of mapcar
         ) ;_ end of apply
       ) ;_ end of vl-remove-if
     ) ;_ end of mapcar
          ) ;_ end of append
         ) ;_ end of mapcar
  ) ;_ end of apply
       ) ;_ end of lambda
     ) ;_ end of function
     (list car cadr caddr)
   ) ;_ end of mapcar
 ) ;_ end of lambda
      ) ;_ end of function
      (list min max)
    ) ;_ end of mapcar
  ) ;_ end of defun

  (Spline_getBoundingBox (car (entsel "\nSelect spline:")))
) ;_ end of defun

Если при работе первого тормозов практически нет, то второй код на сложных сплайнах заметно притормаживает на несколько секунд. Компилировал в fas, проверил - ничего не изменилось .
Вложения
Тип файла: dwg
DWG 2004
stest.dwg (24.4 Кб, 643 просмотров)

Последний раз редактировалось Do$, 22.03.2010 в 13:05.
Do$ вне форума  
 
Непрочитано 22.03.2010, 11:40
#7
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,832


Что-то я не очень понял. На первый взгляд оба кода одинаковы. Или я что-то пропустил?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 22.03.2010, 13:07
#8
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Извиняйте, два раза одно и то же вставил . Пересохранил "Код 2".
Do$ вне форума  
 
Непрочитано 22.03.2010, 14:32
#9
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,407
Отправить сообщение для Александр Ривилис с помощью Skype™


По вопросу ТС кое-какую информацию возвращает функция (mem).
Александр Ривилис вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Определение количества используемой памяти.

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение количества этажей здания Snick Прочее. Архитектура и строительство 18 14.12.2016 11:34
Определение количества воронок на плоской крыше 32x24 метра dextron3 Инженерные сети 4 22.12.2009 08:11
Определение количества рабочих дней в месяце LURYEN Технология и организация строительства 14 16.03.2009 17:49
AutoLISP: Определение количества экземпляров созданных COM объектов Supermax LISP 13 22.11.2008 20:31
Определение количества строительных отходов в ПОС VitaliyP Технология и организация строительства 3 11.11.2008 17:45