- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
<?php
$strings = array();
$strings[] = "10_strings_0";
$strings[] = "10_strings_1x";
$strings[] = "10_strings_2";
$strings[] = "10_strings_3";
$strings[] = "10_strings_4x";
$strings[] = "10_strings_5x";
$strings[] = "10_strings_6";
$strings[] = "10_strings_7x";
$strings[] = "10_strings_8";
$strings[] = "10_strings_9";
// СПИСОК СТРОК ИЗ 100 СТРОК В КОТОРЫХ БУДЕТ ОСУЩЕСТВЛЯТЬСЯ ПОИСК СТРОК ИЗ СПИСКА $strings
for ($counter=0; $counter<100; $counter++)
{
$check_strings[] = "10_strings_".$counter;
}
// Временная папка - папка со скриптом
// создание vbs файлов
for ($strings_c=0; $strings_c<sizeof($strings); $strings_c++)
{
$file = fopen($strings[$strings_c].'.vbs', 'w');
fwrite($file, 'Set Program = Wscript.CreateObject("Wscript.Shell")'.PHP_EOL.'Program.Run("'.$strings[$strings_c].'.bat'.'")'.PHP_EOL.'Wscript.Quit');
fclose($file);
}
// создание bat файлов
$interpreter_root = 'C:\xampp\php\php.exe'; // путь к PHP интерпретатору
for ($strings_c=0; $strings_c<sizeof($strings); $strings_c++)
{
$file = fopen($strings[$strings_c].'.bat', 'w');
fwrite($file, $interpreter_root.' '.$strings[$strings_c].'.php');
fclose($file);
}
// создание php файлов
for ($strings_c=0; $strings_c<sizeof($strings); $strings_c++) {
$code = '<?php
$string = \''.$strings[$strings_c].'\'; // строка для проверки, в каждом экземпляре своя
for ($counter=0; $counter<100; $counter++)
{
$check_strings[] = "10_strings_".$counter;
}
shuffle($check_strings);
$ok = false;
for ($check_strings_c=0; $check_strings_c<sizeof($check_strings); $check_strings_c++)
{
if ($string == $check_strings[$check_strings_c])
{
$ok = true;
break;
}
}
if ($ok == true)
{
$file = fopen("'.$strings[$strings_c].'_ok.txt", "w");
fclose($file);
}
?>';
$file = fopen($strings[$strings_c].'.php', 'w');
fwrite($file, $code);
xXx_totalwar 25.08.2010 07:58 # +5
// создание bat файлов
// создание php файлов
даешь, млять, кодогенерацию!
убейте кто-нибудь автора шыдевра
programer12345 25.08.2010 11:25 # −5
xXx_totalwar 25.08.2010 12:24 # +3
удивительно, но так никто не поступает - парадокс?
programer12345 25.08.2010 12:55 # +1
кстати програмист тем и отличается от кодера, что пытается выйти за рамки документированных возможностей
xXx_totalwar 25.08.2010 13:01 # 0
>кстати програмист тем и отличается от кодера, что пытается выйти за рамки документированных возможностей
за такое потом очень больно бьют, ты пока этого не осознаешь, ввиду никакого опыта, но лучше сразу отвыкай.
programer12345 25.08.2010 13:41 # 0
xXx_totalwar 25.08.2010 13:47 # +4
programer12345 25.08.2010 13:52 # 0
ch 25.08.2010 19:42 # 0
пфхахаха
Анонимус 25.08.2010 20:04 # +1
Кстати я думаю что наоборот. Хороший программист выбирает технологию под задачу, а кодер старается решить задачу на единственной, известной ему технологии.
programer12345 26.08.2010 00:18 # 0
Анонимус 26.08.2010 02:07 # +2
Впринципе, можно и шурупы стамеской забивать. Но это -- хреновое решение.
PHP разрабатывался как средство быстрого построения веб-страничек. В нем нет многопоточности, потому что среднее время жизни PHP скрипта -- меньше секунды.
Если бы Вы писали на джаве или .net например, то Вам бы не пришлось юзать внешние сервисы, трогать операционку и делать другие странные вещи. Вы бы просто создали объект, вызвали у него метод, и Ваш код стал бы работать в несколько потоков))
programer12345 26.08.2010 02:30 # 0
Анонимус 25.08.2010 13:28 # +4
К возможности запуска внешних процессов (который есть почти в любом языке, включая .bat файлы) оно отношения не имеет
programer12345 25.08.2010 13:39 # −1
почему это не имеет отношения к многозадачности (локальное распаралеливание) если скорость программ реально увеличивается в разы ?
Анонимус 25.08.2010 13:42 # +3
если в краце -- в одном процессе работает N потоков. У них общая куча, но разный стек. В каждом процессе есть как минимум 1 поток.
Когда в одном процессе работает несколько потоков -- это и называется многопоточностью.
Запуск N процессов не есть многопоточность.
А многозадачностью называют умение операционки (и процессора) запускать несколько задач, и переключатся между ними так, что бы пользователь думал что они выполняются постоянно.
Ключевые слова: thread
programer12345 25.08.2010 13:55 # 0
короче я говорю о возможности ускорить работу программы за счёт одновременного выполнения простых преобразований
как это правильно назвать ?
Анонимус 25.08.2010 17:13 # −1
А зачем так сложно? Скрипт-хост, .batник...
В пыхе обычного fork нету что ли?
Кстати, что такое "простые преобразования"? Это какой-то термин из вышки?
xXx_totalwar 25.08.2010 17:21 # +3
> .batник...
ну ты понел какая ось =)
Анонимус 25.08.2010 17:26 # 0
xXx_totalwar 25.08.2010 17:54 # +2
это не просто запуск процесса, а создание его точной копии
Анонимус 25.08.2010 19:14 # −1
Вы правы
bugmenot 26.08.2010 02:32 # −3
programer12345 26.08.2010 00:20 # −3
Vasiliy 26.08.2010 10:16 # 0
http://netfaq.ru/php/php_pcntl_fork
xXx_totalwar 26.08.2010 12:34 # 0
Анонимус 26.08.2010 15:27 # 0
Note:
Currently, this module will not function on non-Unix platforms (Windows)."
кто бы сомневался)
Ваще-то на винде есть кусочек подсистемы posix (может там и fork есть), но так как с подсистема может быть только одна, а без win32api трудно что либо написать -- под posix не пишут на виндах.
Анонимус 26.08.2010 15:25 # 0
mrbig66 25.08.2010 08:21 # +2
Даёшь генератор говнокода!
programer12345 25.08.2010 11:41 # −2
связка (основной php скрипт)-bat-vbs-(дочерний php скрипт) позволяет запустить n потоков, каждый из которых будет выполнять простое действие, ввиду одновременности их исполнения, имеем реальный прирост поизводительности
xXx_totalwar 25.08.2010 12:29 # +3
Анонимус 25.08.2010 17:15 # 0
programer12345 26.08.2010 00:21 # 0
istem 25.08.2010 09:24 # 0
3.14159265 25.08.2010 09:37 # +2
Uchkuma 25.08.2010 10:11 # +7
Список строк из 100 строк, в которых строки являются строками, в которых построчно ищутся строки из списка строк в строковом представлении строчными буквами.
xXx_totalwar 25.08.2010 11:20 # +1
programer12345 25.08.2010 11:21 # −4
.....................
fclose($file);
}
// запуск потоков
for ($strings_c=0; $strings_c<sizeof($strings); $strings_c++)
{
exec($strings[$strings_c].'.vbs');
sleep(1);
@unlink($strings[$strings_c].'.php');
@unlink($strings[$strings_c].'.vbs');
@unlink($strings[$strings_c].'.bat');
}
// далее идёт обработка текстовых файлов с именами 10_strings_9_ok наличие котрых говорит о том что например строка 10_strings_9 найдена в списке строк из ста трок (см. выше)
// в текстовых файлах можно возвращать текстовые данные которые будут парсится основным скриптом и использоваться для дадьнейшей работы
?>
xXx_totalwar 25.08.2010 12:28 # +1
ой как все запущено..
programer12345 25.08.2010 12:58 # 0
xXx_totalwar 25.08.2010 13:05 # 0
ппц начинается от того, что никакие это не 'потоки' (threads? сраная рашкинская терминология) и заканчивается слипами (нах?) и засобачеными операторами.
programer12345 25.08.2010 13:50 # 0
задача была поставлена, задача решена
согласен что на других языках решение более красивое, но для моих задач подходит ... поэтому я просто поделился своим решением (на другом форуме (а сюда постил не я))
walk_ 25.08.2010 14:06 # 0
programer12345 25.08.2010 14:10 # 0
скрипты работают в разы быстрее
walk_ 25.08.2010 16:36 # +1
что, впрочем, уже обсуждалось.
programer12345 26.08.2010 00:23 # +1
подскажите, кто знает, какой термин будет в данном случае более правильным ? локальное распаралеливание ?
cheef 25.08.2010 10:23 # +2
exciter 25.08.2010 11:04 # +3
programer12345 25.08.2010 11:29 # −6
> Список строк из 100 строк, в которых строки являются строками, в которых построчно ищутся строки из списка строк в строковом представлении строчными буквами.
список из десяти строк вверху, которые нужно найти в списке из ста строк (которые создаются в цикле) всего лишь простой задачи, которая поддаётся распралеливанию
bugmenot 25.08.2010 19:20 # 0
programer12345 26.08.2010 00:32 # −1
bugmenot 26.08.2010 02:43 # +1
как вам такой паллиативчик, коллеги?
programer12345 26.08.2010 03:03 # −6
bugmenot 26.08.2010 03:41 # +1
LOL, butthurt
или
NO, U!!!1
:-P
programer12345 26.08.2010 03:53 # −6
3.14159265 27.08.2010 18:27 # +1
bugmenot 27.08.2010 18:50 # +1
Анонимус 25.08.2010 13:26 # 0
а вообще я не верю, что такое бывает
это чей-то дурной сон
xXx_totalwar 25.08.2010 13:30 # +4
да?
C:\xampp\php\php.exe (причем хардкодом)
Wscript.CreateObject
BATники
зачетный кроссплат
Анонимус 25.08.2010 13:33 # 0
programer12345 25.08.2010 13:58 # 0
programer12345 25.08.2010 14:02 # 0
Анонимус 25.08.2010 13:29 # 0
xXx_totalwar 25.08.2010 13:49 # 0
http://govnokod.ru/4096#comment44537
Lure Of Chaos 25.08.2010 21:24 # −1
programer12345 26.08.2010 00:28 # 0
а между собой им зачем общаться ? изначально подразумевается что каждый дочерний процесс выполняют заранее определённую простую функцию, так что зачем им между собой общаться ?
Lure Of Chaos 26.08.2010 00:40 # −1
programer12345 26.08.2010 00:33 # −2
Lure Of Chaos 26.08.2010 00:37 # 0
bugmenot 26.08.2010 02:37 # +2
programer12345 26.08.2010 03:04 # 0
exciter 26.08.2010 09:45 # +2
Lure Of Chaos 26.08.2010 12:30 # 0
Анонимус 26.08.2010 15:28 # 0
Lure Of Chaos 26.08.2010 18:00 # 0
bugmenot 27.08.2010 14:57 # +3
3.14159265 26.08.2010 19:46 # +4
facepalm.010
и я ж просил не сфейлите http://govnokod.ru/4042#comment43735, так еще и в треде объявился некий programer, который вообще не в курсах, что такое 4096
кстати интересно кто сгетил 44444 коментарий??
ЗЫ
http://gofuckbiz.com/showthread.php?t=17406&page=12
xXx_totalwar 26.08.2010 19:59 # +4
ага. и педалит.
>делаю потоки форками на пхп и не парюсь, для большинства задач хватает
потоки(!) форками - ай, малаца
>(это касается даже своих спамилок)
спамер детектед
>конечно есть свои минусы, но зато как удобно и привычно!
привычный и такой родной кактус
>питон пытался колупать но это не мое, интерфейс для серверного софта все равно нужно делать на пхп )))
ололо ниасилил?
>а про "распространенность" питона на дешевых хостингах и говорить не приходится
нищеброды отакуэ
Анонимус 26.08.2010 23:54 # +3
xXx_totalwar 26.08.2010 20:24 # +1
qazxcvbnm
Максим Русланов
[email protected]
http://otvet.mail.ru/mail/max91020791/
http://my.mail.ru/mail/max91020791/
http://vkontakte.ru/id15156119
Откуда: Россия, Южный ФО, Ставропольский край, Ставрополь
programer12345 27.08.2010 03:37 # 0
для каждого сайта у меня отдельные ники
дальнейшие поиски тут - google.com/search?hl=en&q=qazxcvbnm&lr=eng
3.14159265 27.08.2010 09:44 # +3
programer12345 27.08.2010 12:29 # 0
по сабжу - а почему никто не оценит нестандартность подхода ? где умиление ?
xXx_totalwar 27.08.2010 13:12 # 0
а сколько накладных ресурсов въебывается... странно, как вообще 'ускорение' получил.
запили бенчи
programer12345 27.08.2010 18:19 # 0
http://www.govnokod.ru/4096#comment44574
programer12345 27.08.2010 18:21 # 0
xXx_totalwar 27.08.2010 18:33 # 0
proof me wrong
(нормальные бенчи - это когда как минимум репрезентативность соблюдена)
programer12345 28.08.2010 06:21 # 0
xXx_totalwar 28.08.2010 09:11 # 0
у тебя еще и глобальное есть?
залей на обменник сорцы и исходные данные теста (всего один тест? я же предупредил про репрезентативность).
programer12345 28.08.2010 12:36 # 0
xXx_totalwar 28.08.2010 13:01 # 0
programer12345 28.08.2010 21:45 # 0
xXx_totalwar 29.08.2010 07:10 # 0
programer12345 29.08.2010 09:02 # 0
только найти бы учебные примеры для простых задач (типа работа с массивами, импорт тектовых файлов, обработка строк, и конечно пример распараллеливания ...)
я php начинал учить сразу с практических задач (опыт програмирования был)
xXx_totalwar 29.08.2010 10:52 # 0
это не типичные для него задачи.
начать лучше с мануала Джо Армстронга, параллельно пробежаться по пи-исчислению/исчислению коммуникационных систем
programer12345 29.08.2010 11:39 # 0
ну в принципе можно на erlang сравнивать строки или искать вхождения ?
xXx_totalwar 29.08.2010 11:48 # 0
programer12345 29.08.2010 14:39 # 0
programer12345 > работа с массивами, импорт тектовых файлов, обработка строк
xXx_totalwar > это не типичные для него задачи
так можно с помощью erlang сравнивать один список строк с другим списком и искать совпадения ?
и как ? если обработка массивов "нетипичная задача"
xXx_totalwar 29.08.2010 15:03 # 0
уже сказал, что можно.
>"нетипичная задача"
давай ты на php gui'ёвые проги писать будешь. неудобно? это и есть нетипичное применение языка.
я же не сказал, что это "принципиально невозможно".
почитай Армстронга, там все доступно изложено.