Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Версия Java и библиотеки: SSL + SOCKS (sync,async) 
:(
    Опции темы
DHT
Дата 21.1.2013, 05:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 9.1.2013

Репутация: нет
Всего: нет



Добрый день,
перелопатил кучу языков: Delphi 7, Python 2.7, Go, C++.

На данный момент только C++ (с Boost::Threads и libcurl) могут решить мою задачу нормально, но хочется взглянуть на Java, т.к. бенчмарк асинхронных клиентов поражает скоростью http://wiki.apache.org/HttpComponents/Http...ient4vsHttpCore

Задача:
1) множество асинхронных одиночных запросов (до миллиардов) через SOCKS прокси с поддержкой SSL.
2) многопоточная отправка цепочек POST, GET, JSON, AJAX запросов через SOCKS прокси с поддержкой SSL.

OS  разработки: Windows 7 (64-bit).
OS сервера, где будет работать скрипт: Windows Server 2003, 2008 (32-bit).

1) Подскажите пожалуйста какую версию Java мне изучать?
2) Какие библиотеки лучше подойдут для задача 1 и задача 2?
3) Какая библиотека нужна для создания GUI под Windows?

4) Насколько быстро работают потоки в Java?
5) Сколько потоков можно запустить на процесс?
6) Реально ли отправлять 1000 GET запросов в секунду используя многопоточноть и то же самое используя асинхронные запросы? 
7) Не приводят ли блокировки в потоках (например, при получения IP адреса хоста или коннекта к серверу) к тормозам приложения?

Простите за большое кол-во вопросов, но устал начинать изучать новый язык, а потом напарываться на его ограничения.
Все вопросы исключительно под OS Windows.

Спасибо большое заранее всем кто хотя бы дочитал до этой строчки  smile 
PM MAIL   Вверх
Skynin
Дата 21.1.2013, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 1.7.2007
Где: Харьков

Репутация: нет
Всего: 10



Смотреть в сторону Jboss Netty

В качестве "рекламы", все что написано Twiterянами на Scala - бежит поверх Netty.
Если она не справится ("готовить" конечно тоже нужно правильно) - то Javу можно забыть для Вашей задачи smile

1) 7ку - 1.7

2) Netty

3) Зависит от времени которое готовы потратить на GUI. Основная - Swing, но нужно украшать и наращивать ее с помощью SwingX и т.п.
SWT - полностью нативный вид, но тоже, только в комплексе c JFace

Если совсем по крутому:
использовать Eclipse RCP (пример работающего приложения и с открытыми исходниками RSSOwl)
или Netbeans RCP - на Swing.

4) в сравнении - с чем? Вообще, они в Java - нативные, поэтому работают "очень быстро", хотя конечно на Си - можно реализовать быстрее.

5) да как бы сколько хотите. Сколько шедулер ОСи выдержит smile

6) см Netty

7) как напишете, так и будет. видел я "многопоточный" код, который из тотальных блокировок - однопоточным становился. Видел и lock-free код на Java.

Это сообщение отредактировал(а) Skynin - 21.1.2013, 22:25
PM MAIL WWW ICQ Skype GTalk YIM MSN   Вверх
COVD
Дата 21.1.2013, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 11
Всего: 43



Главное отличие Java в том, нет полного контроля за уборкой "мусора". Но если для взаимодействия клиента с сервером используется интернет, который совсем неподконтролен, то непредсказуемость пауз на работу gc (уборщик мусора) приложения не является чем-то ужасным. К тому же, есть возможности оптимизации. 

"Спорт высших достижений" на серверной стороне не обязателен. Теоретически всегда можно вместо совершенствования программ пойти по экстенсивному пути  - добавить серверов, распараллелить вычисления (архитектурные решения). И это нужно не столько для "бенчмарков", сколько для повышения надежности системы, удобства поддержки и модификации. Т.е., сравнения скоростей чего-то на ABCD и X-- конечно интересны, но не принципиальны.

Обычно в сложных проектах мастерство владения инструментом важнее инструмента."Используй то, что лучше знаешь". Java популярна в индустрии - сроки, сложность программирования, стандартные решения. Но ее тоже надо осваивать.

Это сообщение отредактировал(а) COVD - 21.1.2013, 23:15
PM MAIL   Вверх
DHT
Дата 22.1.2013, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 9.1.2013

Репутация: нет
Всего: нет



Цитата(Skynin @  21.1.2013,  22:24 Найти цитируемый пост)
2) Netty

Промо нравится. Посмторим на деле. Спасибо.

Цитата(Skynin @  21.1.2013,  22:24 Найти цитируемый пост)
или Netbeans RCP - на Swing.

Выбор пал на нее. Хоть Exclipse уже и стоит для Python, но не нравится мне он. Думал IDEA бесплатную версию, но там вышеупомянутый Netty (Jboss) не поддерживается.


Цитата(COVD @  21.1.2013,  23:15 Найти цитируемый пост)
Обычно в сложных проектах мастерство владения инструментом важнее инструмента."Используй то, что лучше знаешь".

На данный момент лучше всего я знаю Python, но, увы, в Windows он показывает совсем хилую скорость работы с сетью. 
Попробовал Google Go, но и тот в Windows блокируется при конвертировании имени хоста в IP адрес, т.е. эквивалентен в "скорости" с Python с его GIL (наверное, Гвидо Ван Росум на них плохо влияет smile ).

Простите за глупый вопрос, но он как раз напрашивается. В Java же нет подобных глобальных блокировок и не важно в какой ОС запускать приложение, т.к. работь оно будет на JVM? Т.е. я не упрусь со временем в то, что Jаva приложение быстрое на Linux, FreeBSD  и медленное на Windows. Верно?

PM MAIL   Вверх
COVD
Дата 22.1.2013, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 11
Всего: 43



Разрешение IP адреса происходит через запрос к DNS серверу. Он может отвечать с задержкой, может вообще не ответить в отведенное время. Очевидно, это и есть основная "блокировка" и она не зависит от операционной системы и, тем более, от языка, на котором написана программа. Другое дело, что эти запросы не нужны, если адрес уже задан в виде ххх.ххх.ххх.ххх. Думаю, так и реализовано везде.

Это сообщение отредактировал(а) COVD - 22.1.2013, 14:21
PM MAIL   Вверх
DHT
Дата 22.1.2013, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 9.1.2013

Репутация: нет
Всего: нет



Цитата(COVD @  22.1.2013,  14:10 Найти цитируемый пост)
Разрешение IP адреса происходит через запрос к DNS серверу. Он может отвечать с задержкой, может вообще не ответить в отведенное время. Очевидно, это и есть основная "блокировка" и она не зависит от операционной системы и, тем более, от языка, на котором написана программа. 


Тогда спрошу так: может ли приложение на Java запустить множество разных запросов к DNS серверу параллельно? И не ппиведет ли блокировка одного запроса к блокировке других?

Уточняю, т.к. на Python и Go приведет к блокировке под ОС Windows.
PM MAIL   Вверх
COVD
Дата 22.1.2013, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 11
Всего: 43



Вы считаете, что в Питоне плохо реализованы сетевые операции и интересуетесь, лучше ли они реализованы в Java? Я не сравнивал. Предполагаю, что вы имеете дело с общими естественными ограничениями пропускной способности. 



Это сообщение отредактировал(а) COVD - 22.1.2013, 18:04
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.1502 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.