Пожалуйста, подпишитесь на официальный канал Codeforces в Telegram по ссылке https://t.me/codeforces_official. ×

Блог пользователя pastglory1

Автор pastglory1, 4 года назад, По-английски

Hello, I'm Exile_2k4.

Now, I really want to know if there is any tools (script, Windows CMD command, or something else) that can be used to limit execution time and memory consumption. In example, a CMD script that set the time limit of a process to 5 seconds and allows 256MB of memory (which is used by the task), and after 5 seconds, or exceeded the memory limit, if the task is still running, then kill it.

Just like what Codeforces, or any Online Judge do, but more portable.

Do you have any ideas ? My OS is Windows 10 (not Linux).

Thank you.

  • Проголосовать: нравится
  • +16
  • Проголосовать: не нравится

»
4 года назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

Use Windows Subsystem for Linux.

There are many tutorials for installation.

:)

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    XD

  • »
    »
    4 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    could you give me some info about some resource monitor on linux like what I said above ? (I don't want complex installation.)

    • »
      »
      »
      4 года назад, # ^ |
        Проголосовать: нравится +11 Проголосовать: не нравится

      link

      Just follow the simple instructions.

      And copy your code into the Linux Distribution's folder, and run it with

      timeout 5 {Your_Programs_Name}
      

      (Sorry, I don't know how to adjust with memory limit)

    • »
      »
      »
      4 года назад, # ^ |
        Проголосовать: нравится +11 Проголосовать: не нравится

      But you can use command

      size {Your_Programs_Name}
      

      to see your program's static memory usage.

    • »
      »
      »
      4 года назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      I am not familiar with Windows tools, but process-governor looks interesting.

      As FlameSlayer has mentioned, isolate is the answer for Linux. Building and installing are simple (install dependencies, make and make install) and it has been battle-tested in multiple IOI's. However, as it uses Linux-specific mechanisms it's not expected to run on Unix or native Windows (WSL may be a chance but I have not attempted).

      FYI, if not building a judge system with safety in mind, it is also possible to write a program to limit resource usage under Unix-like systems. If interested, look into the function setrlimit() (see the manual page, and there are also examples online).

      Hope it helps!

»
4 года назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

There are runners for Windows, but they require complex setup. You can see the VOJ's implementation here You need some Java and C++ skills, and you need to understand Chinese.

here is a compiled CMD version.

»
4 года назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

There is Run from PCMS2.

»
4 года назад, # |
  Проголосовать: нравится -8 Проголосовать: не нравится

orz