LINUX.ORG.RU

Intellij IDEA. Для Open Source - бесплатно.


0

0

Компания JetBrains объявила о предоставлении Open Source проектам бесплатных лицензий на Intellij IDEA - одну из лучших Java IDE. К проектам-соискателям предъявляются следующие требования:

1. Open Source
2. Наличие отдельного сайта, посвященного проекту
3. Наличие жизнеспособного community

Количество предоставляемых лицензий не уточняется.

>>> Подробности на сайте JetBrains



Проверено: Shaman007 ()

Ответ на: комментарий от pitekantrop

>Если убрать это требование, то это означает начать бесплатную раздачу всем желающим, у которых хватит ума зайти на sourceforge, завести там новый проект, получить лицензию и забыть про opensource.

Никто не предлагает его убрать :) Так уже хорошо. Кто может платить - платит, кто не может - есть другие пути, непростые, но хотя бы такие.

Displacer ★★
()

>Почему всегда хамят ананимусы? >Не неинтерсен тебе этот тред ну и не пиши сюда, >а про то что трава зеленая а небо голубое мы и сами догодаемся.

Почему всегда анонимусы пишут неадекватные ответы? Где ты увидел хамство в моем ответе? Пишу в тред как раз потому, что тред интересен.

>2) не читать книжек никиих, кроме как про java

А ты хоть одну книжку ПРО java прочитал? Я ничего хорошего в книжках по питону и руби не почерпнул.

>Слышь, гнида, тебе же сказано было - заткни свою блядовую пасть своим калом, и не воняй, выродок. Хули разпизделся, гадёнышь?

Ну если нет аргументов нормальных, то... Я то думал, почерпну реально толковых мыслей от толкового программиста. А Mauhuur оказывается может только про нерастяжимые нити, упругие шары и сверических коней в вакууме речи толкать.

>Теоретически в связи с отсутствием адресной арифметики в Жаве можно реализовать очень эффективные алгоритмы выделения памяти в куче и сборки мусора, что мы и наблюдаем в последних бенчмарках практически :)

Для тупых поясни плиз: это стеб или реальное положение дел?

anonymous
()
Ответ на: комментарий от anonymous

>> Теоретически в связи с отсутствием адресной арифметики в Жаве можно реализовать очень эффективные алгоритмы выделения памяти в куче и сборки мусора, что мы и наблюдаем в последних бенчмарках практически :)

> Для тупых поясни плиз: это стеб или реальное положение дел?

Хорошо прогретая серверная JVM 1.4.2 для большинства тестов показывает лучшую производительность, чем С++. Где-то видел тесты для большого количества современных языков, там java -server тоже была на высоте, только с тригонометрическими функциями там было плохо.

http://kano.net/javabench/data

Хотя у java по прежнему есть проблемы с использованием памяти и временем запуска.

pitekantrop ★★★
()
Ответ на: комментарий от anonymous

>По теме - на AMD64 _лучше_ программировать :) компиляция идет существенно быстрее. посмотри бенчмарки.

Дай ссылки, ссылки дай! Особенно компиляции Java программ

anonymous
()
Ответ на: комментарий от WindowsUser

Ну так не удивительно: на работе у тебя P4, а дома более слабая машина, наверняка Athlon 1500+ | P3 1200

anonymous
()
Ответ на: комментарий от anonymous

>> По теме - на AMD64 _лучше_ программировать :) компиляция идет существенно быстрее. посмотри бенчмарки.

> Дай ссылки, ссылки дай! Особенно компиляции Java программ

Ссылку не дам :) Но после того, как заменил P4HT 2800 на AMD64 3000+, у меня полный билд проекта стал идти 20 минут вместо 30. Сейчас ещё и Gentoo/amd64 поставил - вроде всё побыстрее стало. Только из-за отсутствия 64bit клиентской JVM приходится пользоваться 32bit, поэтому ещё выжать из билда не удалось.

pitekantrop ★★★
()
Ответ на: комментарий от anonymous

> Теоретически, можно запустить и на 1.5, но не будет работать дебаггер (из-за переименованных классов в tools.jar), разницы большой не будет.

будет работать долбагер. надо только tools.jar от 1.4 взять :)

WindowsUser ★★
()
Ответ на: комментарий от anonymous

> А сходить на сайт жавасанком и скачать jdk1.5.0-amd64.bin что то мешает?

Скачана, и не только она:
$ java-config -L
[sun-jdk-1.4.2.06] "Sun JDK 1.4.2.06" (/etc/env.d/java/20sun-jdk-1.4.2.06) *
[sun-jdk-1.5.0.01] "Sun JDK 1.5.0.01" (/etc/env.d/java/20sun-jdk-1.5.0.01)
[blackdown-jdk-1.4.2.01] "Blackdown JDK 1.4.2.01" (/etc/env.d/java/20blackdown-jdk-1.4.2.01)
[ibm-jdk-bin-1.4.2] "IBM JDK 1.4.2" (/etc/env.d/java/20ibm-jdk-bin-1.4.2)

Я же сказал, там нет клиентской JVM, а серверная в моём случае работает медленнее, чем клиентская 32bit.

pitekantrop ★★★
()
Ответ на: комментарий от pitekantrop

>Я же сказал, там нет клиентской JVM, а серверная в моём случае работает медленнее, чем клиентская 32bit.

что то я тя не пойму - что понимается под медленнее? выполняется больше инструкций изза этого дольше или субъективная скорость запуска самой жвм или еще что

anonymous
()
Ответ на: комментарий от pitekantrop

> Хорошо прогретая серверная JVM 1.4.2 для большинства тестов показывает лучшую производительность, чем С++.

Интересные у вас тесты... а давай сравним скорость заполнения std::list<int> против ArrayList<Integer>? или даже std::map<std::string, double> против TreeMap<String, Double>?

int19h ★★★★
()
Ответ на: комментарий от anonymous

>> Я же сказал, там нет клиентской JVM, а серверная в моём случае работает медленнее, чем клиентская 32bit.

> что то я тя не пойму - что понимается под медленнее? выполняется больше инструкций изза этого дольше или субъективная скорость запуска самой жвм или еще что

Под "медленнее" понимается "такая же задача занимает больше времени". Задача специфическая - сборка проекта, в ходе которой java запускается очень много раз на короткое время. Поэтому серверную JVM применять нецелесообразно.

pitekantrop ★★★
()
Ответ на: комментарий от int19h

> а давай сравним скорость заполнения std::list<int> против ArrayList<Integer>? или даже std::map<std::string, double> против TreeMap<String, Double>?

а давай :)

Можешь сделать 2 короткие программки на С++ и запостить сюда?

pitekantrop ★★★
()
Ответ на: комментарий от vtVitus

>Ну не знаю проект на 2500 файлов + томсат + мозила + тандермух + kde + ant - при компиляции 300 метров свопа :(

Не стоит принимать во внимание завывания фанатиков. На 512 метрах идея не живет никак. Просто для некоторых работа в раскоряку - нормальное явление. На счет рефакторинга для жабы под emacs-ом см. http://www.xref-tech.com/xrefactory-java/main.html рефакторит и комплекшн делает.

anonymous
()
Ответ на: комментарий от anonymous

> Не стоит принимать во внимание завывания фанатиков. На 512 метрах идея не живет никак.

Расскажите это кому-нибудь другому. На данный момент запущено: IDEA 4.5, Tomcat, PostgreSQL, MySQL, IE, Firefox, Evolution, kppp, lincvs и всякая мелкота вроде xmms.
Загрузка Проца: 4-6%
Загрузка Памяти: 62% Cвоп: 12%

Pentium 4 2.8G, 512M оперативы в двухканальном режиме, ядро 2.6.7

ЗЫ. Вод когда первый раз пробовал пускать IDEA + Tomcat на 256M при используемом KDE - вот тогда да, работать невозможно

PartyZan ★★★
()
Ответ на: комментарий от pitekantrop

#include <iostream>
#include <list>
#include <ctime>

void fill_list(std::list<int> &integers)
{
    for (int i = 0; i < 10000000; i++)
    {
        integers.push_back(i);
    }
}

int main()
{
    std::list<int> integers = std::list<int>();
    fill_list(integers); //прогрев
    integers.clear();
    std::clock_t start_time = std::clock();
    fill_list(integers);
    std::clock_t end_time = std::clock();
    std::cout << "Time:" << (end_time - start_time)/(CLOCKS_PER_SEC/1000) << '\n';
    std::cout << integers.size() << '\n'; //хак против оптимизатора
}

Компилил g++ -O3
Примерно 430мс.

package ru.org.linux.perf;

import java.util.List;
import java.util.ArrayList;

public class ListPerf {
    public static void main(String[] args) {
        final List<Integer> integers = new ArrayList<Integer>();
        fill(integers); //прогрев
        integers.clear();
        final long startTime = System.currentTimeMillis();
        fill(integers);
        final long endTime = System.currentTimeMillis();
        System.out.println("Time:" + (endTime - startTime));
        System.out.println(integers.size()); //хак против оптимизатора
    }

    private static void fill(final List<Integer> integers) {
        for (int i = 0; i < 10000000; i++) {
            integers.add(new Integer(i));
        }
    }
}

Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_01-b08, mixed mode) с ключами -Xmx512m -Xms512m
Примерно 1330мс. Хреново :( Но если переписать с использованием trove

package ru.org.linux.perf;

import gnu.trove.TIntArrayList;

public class ListPerf {
    public static void main(String[] args) {
        final TIntArrayList integers = new TIntArrayList();
        fill(integers);
        integers.clear();
        final long startTime = System.currentTimeMillis();
        fill(integers);
        final long endTime = System.currentTimeMillis();
        System.out.println("Time:" + (endTime - startTime));
        System.out.println(integers.size()); //hack to prevent from optimizations
    }

    private static void fill(final TIntArrayList integers) {
        for (int i = 0; i < 10000000; i++) {
            integers.add(i);
        }
    }
}

Получаем 230мс.

pitekantrop ★★★
()
Ответ на: комментарий от pitekantrop

#include <string>
#include <sstream>
#include <iostream>
#include <map>
#include <ctime>

template <class type> inline std::string to_string(const type &value)
{
    std::ostringstream streamOut;
    streamOut << value;
    return streamOut.str();
}

void fill_map(std::map<std::string, double> &map)
{
    for (int i = 0; i < 1000000; i++)
    {
        map[to_string(i)] = (double) i;
    }
}

int main()
{
    std::map<std::string, double> map = std::map<std::string, double>();
    fill_map(map);
    map.clear();
    std::clock_t start_time = std::clock();
    fill_map(map);
    std::clock_t end_time = std::clock();
    std::cout << "Time:" << (end_time - start_time)/(CLOCKS_PER_SEC/1000) << '\n';
    std::cout << map.size() << '\n';
}

g++ -O3 даёт 2150мс.

package ru.org.linux.perf;

import java.util.Map;
import java.util.TreeMap;

public class MapPerf {
    public static void main(String[] args) {
        final Map<String, Double> map = new TreeMap<String, Double>();
        fill(map);
        map.clear();
        final long startTime = System.currentTimeMillis();
        fill(map);
        final long endTime = System.currentTimeMillis();
        System.out.println("Time:" + (endTime - startTime));
        System.out.println(map.size()); //hack to prevent from optimizations
    }

    private static void fill(final Map<String, Double> map) {
        for (int i = 0; i < 1000000; i++) {
            map.put(String.valueOf(i), new Double(i));
        }
    }
}

Та же JVM с -Xmx256m -Xms256m даёт примерно 1840мс.

pitekantrop ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.