stackguru Ответов: 1

Как я могу установить память (МБ), источник (КБ), время (секунды) для кода?


I would like write a python code, with all necessary limits. Say, python code should consume Memory(x MB), Source (y KB) and Time (z Seconds).

Can I set these attributes to my code and also log the actual Memory, Source and Time of code along with detailed memory of all objects(size) used in code ?

Example Code :
<pre lang="Python">def test(n):
       some_val = 0
       some_dict = {}
       some_list = []
       for i in range(n):
          some_list.append(i)
          some_dict[i] = i*i
      print(some_val)
      print(some_list)
      print(some_dict)

n = int(input())
test(n)

Для приведенного выше примера кода, как я могу установить память, источник и ограничение по времени ? И как я могу напечатать фактические те же самые детали для вышеуказанного кода вместе с подробной памятью всех объектов(размера), используемых в коде ?

Я учусь, чтобы стать лучшим и эффективным программистом. Я ценю вашу поддержку и помощь. Возможно ли это ? Может ли кто-нибудь проводить нас ?

Что я уже пробовал:

 def test(n):
       some_val = 0
       some_dict = {}
       some_list = []
       for i in range(n):
          some_list.append(i)
          some_dict[i] = i*i
      print(some_val)
      print(some_list)
      print(some_dict)

n = int(input())
test(n)

1 Ответов

Рейтинг:
1

OriginalGriff

Насколько я знаю, на самом деле вы не можете этого сделать - в любом случае это было бы бессмысленно.
Вы можете проверить исходный код, прочитав информацию о файле для вашего источника, так как Python интерпретируется, а не компилируется, но это все.

Время в секундах? На какой машине? Один и тот же источник может работать на Amstrad 6140 с процессором 8 МГц с одним потоком и Intel Core i9-10900K с десятью ядрами, двадцатью потоками и тактовой частотой 5,3 ГГц. Один за пять секунд сделает гораздо больше, чем другой!
Даже если вы это сделаете, вам нужно будет поговорить с ОС, чтобы ограничить его, и это будет зависеть от ОС, на которой работает ваше приложение: Windows будет отличаться от MacOs, и снова отличается от Linux - все из которых могут запускать одно и то же приложение python.

Память? Почему? Если вы хотите контролировать свою память, то меньше подходите к своей машине, так как Python не имеет механизма для ограничения этого - вы могли бы ограничить память процессов, но опять же вы возвращаетесь к Прямому разговору с ОС.

Как ты думаешь, зачем тебе это нужно?


stackguru

Спасибо за ответ @OriginalGriff
Мое намерение состоит в том, чтобы запустить код python, который должен отображать потребляемую память и время вместе с размером исходного кода. Разве это невозможно ?

stackguru

Есть много таких скриптов python. Хотелось бы отслеживать и оптимизировать. Например, автоматизировать эти вещи. Всякий раз, когда выполняется скрипт python,он должен отображать время памяти и размер исходного кода этого конкретного скрипта.