Страница: 1 | 2 |
Вопрос: Я в матрице?!
Добавлено: 26.04.09 11:13
Автор вопроса: VβÐUηìt | Web-сайт:
Можно ли как-нибудь (не через попу) узнать, запущена ли моя прога на реальном компе, или на виртуальной машине. Или только по совокупности факторов (типа жутко тупая, редко встречающаяся видеокарта, странный проц, неизвестный никому биос и еще всякая лабуда)
Ответы
Всего ответов: 18
Номер ответа: 1
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #1
Добавлено: 26.04.09 16:22
Врядли удастся написать универсально на все виртуалки во все времена. Освой хотябы несколько популярных.
Можно по названиям дров, а их можно выудить из реестра.
В вмваре видюха VMWare, в Virtual Box'е тоже чтоньть такое.
И нинадо их совокуплять, один более менее надежный признак одна виртуалка.
В своей проге я просто в настройках галочку сделал, а там хоть трава не расти.
Номер ответа: 2
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #2
Добавлено: 26.04.09 16:59
realtime priority, rdtsc - самый сложно обходящийся разработчиками виртуальных машин метод.
Номер ответа: 3
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #3
Добавлено: 26.04.09 20:17
Хм, а можно поподробней?
Номер ответа: 4
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #4
Добавлено: 26.04.09 20:47
Галку для виртуалки в своей проге я потому и сделал, чтоб прога знала, стоит брать приоритет реального времени или нет. С реалтаймом виртуалка виснет на долго, получается что реалтайм в виртуалке дает не пользу а вред.
Номер ответа: 5
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #5
Добавлено: 27.04.09 04:05
Судя по твоему вопросу наши советы это как раз "через задницу"
Но на вб6 ябы изголялся именно так.
Или вообще не стал бы детектировать виртуальность, просто оптимизировал бы прогу под виртуалку, а на реальной машине она полюбому пойдет нормально.
Нет правда, скажи чесно, нафига тебе определять виртуальность?
Я не въезжаю
Номер ответа: 6
Автор ответа:
Unknown_Master
Вопросов: 11
Ответов: 264
Профиль | | #6
Добавлено: 27.04.09 21:11
VBD, отметь этот день в календаре!
Steel Brand не отписался в твоём посте)))
Номер ответа: 7
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #7
Добавлено: 28.04.09 12:50
Чтобы оно не запускалось на виртуалке, говорило "Фубяка!", ибо на виртуалке глючит и тормозит, а на компах - нет.
Steel Brand не отписался в твоём посте)))
Отметить надо. Но не в каледаре!..
Номер ответа: 8
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #8
Добавлено: 28.04.09 13:46
Что тормозит это вина не только виртуалки, оптимизируй код и все будет пучком.
Просто добавь DoEvents в длинные циклы.
Номер ответа: 9
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #9
Добавлено: 01.05.09 17:31
Я думаю, в решении на сорок пять тысяч строк "Просто добавь DoEvents в длинные циклы." врят ли поможет. Да и код я уже давно оптимизировал. Мне нужно именно узнать на виртуальной машине моя прога, или нет. Или на крайняк - список самых популярный виртуальных машин (кроме VMWare и MS Virtual Machine)
Номер ответа: 10
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #10
Добавлено: 01.05.09 18:09
Sun - VirtualBox
Номер ответа: 11
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #11
Добавлено: 01.05.09 18:17
При больших циклах проги тормозят и на реальной машине, а под виртуалкой виснет вся система, меня в этом случае спас DoEvent я поэтому и посоветовал.
В моем случае это была рекурсивная функция, по сути цикл на 50K с хреном итераций.
Номер ответа: 12
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #12
Добавлено: 01.05.09 20:45
жесть
Интересно почему .NET не тормозит на виртуалках, причем без всяких там доэвэнтз.
Учитесь писать проги, господа
Номер ответа: 13
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #13
Добавлено: 01.05.09 21:16
Вы%бон в чистом виде.
Номер ответа: 14
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #14
Добавлено: 01.05.09 21:17
Как догадался?
Номер ответа: 15
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #15
Добавлено: 01.05.09 21:34
А почему бы перед каждым более или менее циклом (который сам по себе комп не подвесит, однако) проверять нажата ли кнопка Escape или какой нить там гуйок? тогда за секуны три можно развесить комп будет.