Перейти к содержимому

Фотография

Вопрос - ОтветЗадал вопрос - получил ответ...


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 764

#601
Tuco

Tuco
  • В доску свой
  • 1 179 сообщений

А Docker разве это не делает? 

 

Без докера?

 

 

Сейчас вот так работает: сохраняю файл, gradle тут же подхватывает, потом как только jar меняется, тут же сервис перезапускается.

 

Занимает всё 7 секунд на маленькой VPS. Из них секунд 5 съедает Spring.

 

Можно ли как-то ускорить запуск Spring ? 

 

/bin/bash -c "./gradlew -x test --continuous build"

/usr/bin/java -jar -Xverify:none -XX:TieredStopAtLevel=1 -noverify /home/mz/build/libs/mz-0.0.1-SNAPSHOT.jar

 

В спринге такие настройки

spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false
spring.jpa.hibernate.ddl-auto=none


Сообщение отредактировал Tuco: 10.12.2018, 05:15:22

  • 0

#602
lexx821

lexx821
  • Свой человек
  • 816 сообщений

В спринге такие настройки spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false spring.jpa.hibernate.ddl-auto=none
 

В Springе, я не селён. Раньше на линукс сервере джава стояла, раньше JSF занимался, на новом сервере Windows Server 2008 стоит джава, но только из-за red5 стрим сервера...  Занимаюсь чистым JavaEE без всяких фреймворков.

P.S. Если код меняется, обычно показывают ошибку 503 скажем в течение часа. 


  • 0

#603
Tuco

Tuco
  • В доску свой
  • 1 179 сообщений

в течение часа. 

 

 

Сейчас более мощное ядро проца поставил в VPS, вместо 7 секунд, всё вместе занимает 5.5 секунд. 

 

На двух ядрах занимает 3 секунды, надо короче на железе не экономить


Сообщение отредактировал Tuco: 10.12.2018, 06:47:17

  • 0

#604
Tuco

Tuco
  • В доску свой
  • 1 179 сообщений

 В Springе, я не селён 

 

Сейчас проект перегоняю на Спринг. Прикольная штука. Но геморная настройка по линукс. 

 

Времени читать доки нет, приходит на скаку ))

 

В итоге создал три сервиса - один следит за изменением файлов, второй за jar, третий сам спринг держит. 

 

В итоге работает, но может кто-то опытный, есть ли что-то уже встроенное в спринг? Чтобы файл заменить и тут же перезагрузить всё. 

 

Ещё интересно, где в спринге поотрубать лишние компонены, сейчас за секунды 3.5 стартует, в идеале бы за 1-2, real? 


  • 0

#605
Tuco

Tuco
  • В доску свой
  • 1 179 сообщений

 JSF 

 

 

JSF уже канул в лету. 

 

Но как люди на Спринг работают, всё сделано на столько неудобно. Один Thymeleaf чего только стоит. 

 

На node js то же самое выходит в 10 раз быстрее. Да и на пхп blade, twig - просто небо и земля. 


  • 0

#606
Tuco

Tuco
  • В доску свой
  • 1 179 сообщений

 MySQL 

 

Сейчас заказал вот такой сервак, жду https://www.ovh.ie/d...me/1901mc03.xml

 

Так разогнанное ядро + nvme. Хочу проверить на сколько MariaDB взлетит на таком конфиге. 

 

Ядро очень мощное, на geekbench под 7500 попугаев выдаёт (одно ядро!!)


  • 0

#607
lexx821

lexx821
  • Свой человек
  • 816 сообщений

проверить на сколько MariaDB взлетит на таком конфиге
 

Сейчас берёт популярность -  in-memory database, это БД размещаемая в ОЗУ, а с SSD серверов нет? Я думаю с SSD взлетит очень быстро, тогда не надо брать IMDB... А если сервер на HDD то лучше с IMDB... тогда нужно ОЗУ как минимум 8гбайт, ааа там 64 гига, для такого сервака как-раз подходит IMDB.

Кстате про MariaDB вот-что я нашёл, это на сайте MariaDB:

SET max_heap_table_size = 1024*516;
CREATE TABLE t (a VARCHAR(10), b INT) ENGINE = MEMORY;
SET max_heap_table_size = @@max_heap_table_size;

ENGINE=MEMORY это она создаст вроде как в памяти...  


  • 0

#608
Tuco

Tuco
  • В доску свой
  • 1 179 сообщений

 Кстате про MariaDB вот-что я нашёл, это на сайте MariaDB 

 

Короче проверил, сервак выше по ссылке. Там десктопные ядра, разогнанные и NVMe диски, я поставил их в RAID 0, рискованно, но скорость возрастает значительно.

 

В общем, процентов на 20-25% увеличилась производительность MariaDB. Всё таки зависит от CPU


  • 0

#609
Tuco

Tuco
  • В доску свой
  • 1 179 сообщений

 Занимаюсь чистым JavaEE  

 

Лекс, привет, с НГ :) 

Полез я в J2EE и честно говоря в шоке, на сколько всё усложнено. В чём-то разобраться можно мозг сломать. 
Ушло недели 2 чтобы в J2EE разобраться и сделать основу проекта, просто тупо подступиться - rest, базы. Всё на столько неудобно сделано.
Работа с базой поражает деревянностью. 
 
По сравнению с этим, asp.net просто небо и земля. Совсем другой коленкор. 
 
Вопрос тупой, раз ты занимаешься этим, есть ли какой-то конструктор запросов?  Типа  TableUsers.select("email").where("id", 123).limit(10).get() 
Есть jooq, но можно что-то встроенное имеется?

  • 0

#610
lexx821

lexx821
  • Свой человек
  • 816 сообщений

Лекс, привет, с НГ  

 

Здорова, спасибо тебя тоже с НГ.

 

 

Работа с базой поражает деревянностью.    По сравнению с этим, asp.net просто небо и земля. Совсем другой коленкор. 

 

 

 Не знаю, мне кажется там всё так-же как в asp net, вот сделал только-что пример, всё работает:

j001.png j002.png j003.png


  • 0

#611
lexx821

lexx821
  • Свой человек
  • 816 сообщений

Вот код:

// Append.java
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  try  {
    String strName = request.getParameter("name");
    response.getWriter().append(strName);
    if(strName != null) {
      if(!strName.equals("")) {
        Class.forName("com.mysql.jdbc.Driver");
        connect = DriverManager.getConnection("jdbc:mysql://localhost/demodb?user=root&password=");
        preparedStatement = connect.prepareStatement("INSERT INTO person(name) VALUES(?)");
        preparedStatement.setString(1, strName);
        preparedStatement.execute();
        preparedStatement.close();
        connect.close();
      }
    }
  }
  catch(Exception ex) {
    response.getWriter().append(ex.toString());
  }
  finally { }
}
<!-- index.jsp -->
<form method="POST" action="Append">
  <label>Name:</label>
  <input name="name" type="text" value="">
  <input type="submit" value="OK">
</form>	


  • 0

#612
Tuco

Tuco
  • В доску свой
  • 1 179 сообщений

Спс. Я имею ввиду, есть ли какой-то конструктор запросов?  Невозможно же такую чачу прописывать каждый раз ))

 

К примеру, пусть Users будет название таблицы, entity.

 

Map<String, String> map = new HashMap<String, String>();
map.put("name", "demo");
map.put("fname", "fdemo");

 

Users.insert(map);

Users.where('id', 1).update(map);

 

Типа такого?  


  • 0

#613
lexx821

lexx821
  • Свой человек
  • 816 сообщений
Вопрос тупой, раз ты занимаешься этим, есть ли какой-то конструктор запросов?  Типа  TableUsers.select("email").where("id", 123).limit(10).get() 

 

Вот:
// Dataabase.java
public class Database { 
    private String SQL;

    public Database(){
        this.SQL = "";
    }
    
    private void setSQL(String SQL) {
        this.SQL += SQL;
    }

public String toString() {
    return SQL;
}

public Database Insert() {
    this.setSQL("INSERT ");
    return this;
}

public Database Into(String table, String[] keys) {
    this.setSQL("INTO " + table + "(");
    for(String key : keys) {
        this.setSQL(key);
        if(!key.equals(keys[keys.length-1].toString()))
            this.setSQL(",");
    }
    this.setSQL(") ");
    return this;
   }

public Database Values(String[] values)
    {
    this.setSQL("VALUES(");
    for(String value : values) {
        this.setSQL("'");
        this.setSQL(value);
        this.setSQL("'");
        if(!value.equals(values[values.length-1].toString()))
            this.setSQL(",");
    }
    this.setSQL(")");
    return this;
      }
}


//Main.java
public class Main {
    public static void main(String[] args) {
        Database db = new Database();
        System.out.println(db.Insert().Into("users", new String[] {"id", "name"}).Values(new String[] {"1", "Tuco"} ).toString());
     }
}

Результат:

INSERT INTO users(id,name) VALUES('1','Tuco')
 
 
Типа Entity Framework как в ASP NET MVC вряд ли получиться, так-как Java не умеет создавать динамически на лету классы и объекты, единственное можно данные добавлять в коллекции или в массивы, в Java просто отсутствует eval, в PHP я могу создать объект и класс динамически спомощью функции eval. Ведь самая крутая фишка в Entity Framework это то что, когда спомощью join соеденяются допустим две таблицы, и превращаются в какой-то новый класс, и потом данные загружаются в массив объектов, которые можно передать из контроллера во вьюшку и во вьюшки спомощью foreach прочитать эти данные...

Сообщение отредактировал lexx821: 05.01.2019, 16:45:22

  • 0

#614
lexx821

lexx821
  • Свой человек
  • 816 сообщений

в PHP я могу создать объект и класс динамически

Кстате в PHP вот так делается:

<?php
$data = array(array('ID'=> '1', 'name' => 'Chuck Norris'), array('ID' => '2', 'name' => 'Arnold Schwarzenegger'));
class Object {
   public function __construct($array) {
     foreach($array as $key => $value) {
       $this->{$key} = $value;
     }
   }
}

$array_objects = array();
$index = 0;
foreach($data as $value) {
  $array_objects[$index] = new Object($value);
  $index++; 
}

foreach($array_objects as $object) {
  echo 'ID:' . $object->ID . '<br>';
  echo 'Name:' . $object->name . '<br><br>';
} ?>

Результат:

ID:1
Name:Chuck Norris

ID:2
Name:Arnold Schwarzenegger


  • 0

#615
Tuco

Tuco
  • В доску свой
  • 1 179 сообщений

Типа Entity Framework как в ASP NET MVC вряд ли получиться, так-как Java не умеет создавать динамически на лету классы и объекты

 

Спс, лекс. Именно это и хотел...

В идеале бы типа такого 

https://docs.djangop...pics/db/models/

Есть ли что-то похожее?

 

Походу самое нормальное что можно использовать это

https://www.jooq.org...-7-steps-step5/

Но тоже не то, что хотелось бы....

 

Работа с базой гемор в джаве. На сколько всё проще в .net сделано, для linq искал альтернативу в java, так и не нашёл ничего.


Сообщение отредактировал Tuco: 06.01.2019, 06:05:36

  • 0

#616
lexx821

lexx821
  • Свой человек
  • 816 сообщений
Есть ли что-то похожее?

Я не занимаюсь Java профессионально, вообще программирование это просто моё хобби. Как нас в техникуми научили в 2007-2010 так я и делаю, короче программирую постаринки. Нас заставляли так писать, как я выше в примере показал. Я вообще мало проектов знаю которые написаны на Java, обычно это какие-нибудь бизнес проекты, так-как Java медленная, где нужен быстрый ответ от сервера, то лучше использовать PHP или Perl. Да и вообще JDK с этого года станет платной, у кого денег нет, то говорят что надо переходить на OpenJDK. Лучше бы оракл IDE нормальную разработали, с нормальным отладчиком, голый компилятор как-то скучновато. А так арендовать чистый JDK у оракл без нормальной IDE и оффлайн без нормальной документации не интересно... Самая нормальная IDE была тогда JBuilder, но она погибла. На сколько помню в техникуме мы Java начали изучать со второго года обучения, до техникума я ходил в универ как гость, там в универе у нас с первого курса обучали алгоритмам на Java. Раньше ещё немного занимался JSF.

 

 

 

На сколько всё проще в .net сделано, для linq

 

В 2006м нас заставляли учить MFC на VC++ 6.0, а на следующий год в 2007 мы перешли на C++/C# .NET так-как техникум закупил VS 2005, и больше мы не изучали MFC, 

LINQ мы не изучали, только OleDb/SQLClient, помню нас заставляли наизусть запомнить классы и методы OleDb/SQLClient, даже на экзаменах попалось это. Я сейчас на .net редко программирую, опыт пропадает, дома дофига трансляторов есть в коробках от разных компаний, как MS начнут продавать на дисках и в коробках так я у них куплю, и опять буду углублённо заниматься net... Download версия это полная фигня. Нужно чтобы была коробка а в ней диски, и книжки... как в те давние далёкие 2008... У меня последняя версия от VS это VS2008Pro, это самая у меня полная версия, она сейчас установлена на Windows XP. Помню я тогда в 2008м купил VS2008Pro + SP2 + Expression Studio 2 + MS Office 2007 Home & Student + MS Access 2010 + MS Office 2003 Professional, и наскачивал к этой среде ещё много бесплатных крутых модулей типа SQL Express Edition 2005, SQL Compact 3.5, Mobile 6.0, ASP NET MVC 1.0 Visual Basic Power Packs 3.0, MySQL Connector for .NET 3.5, SQLite .NET, XNA Studio 3.0 ещё к ней тогда купил приставку думал буду программировать игры и Robotics Developer Studio 2008R3 + настоящий робот, ещё к этому всему у меня есть дома разные мобильные устройства на базе CE, на которых можно тестировать мобильные приложения. На Windows 8.1 VS2008 что-то отказывается полностью устанавливаться, устанавливается частично. Считаю VS2008 было самой крутой, так-как очень много было там фьючей... После VS2008, VS очень сильно вниз скатился... 

 

Поэтому больше ничем помочь в Java не могу. 


Сообщение отредактировал lexx821: 06.01.2019, 19:34:00

  • 0

#617
Tuco

Tuco
  • В доску свой
  • 1 179 сообщений

После VS2008, VS очень сильно вниз скатился

 

 

Сейчас Rider IDE есть, уже с пылу с жару. Но тоже пока не допилен до конца.

 

У Майков вообще бардак, вышла .net core по линукс, но там ни винд форм, плюс многие библиотеки не работают. А старую Framework идет слух, что хотят выпилить. 

 

Недавно смотрел ASP.net 5 mvc - это просто гениально. Они на столько ушли вперёд всех по удобству. Единственно, enterprise пока неохотно пересаживается в .net.  Хот я в Англии, ирландии для .net вакансий больше чем java 


  • 0

#618
Tuco

Tuco
  • В доску свой
  • 1 179 сообщений

Упс, Rider уже вышел. Вообще отлично, всё в нём есть. Теперь точно про Visual Studio можно забыть как страшный сон. 

 

В дот нетчики чтоли перейти :)  


  • 0

#619
lexx821

lexx821
  • Свой человек
  • 816 сообщений

Есть SharpDevelop.

Если тебе нравится больше .net чем Java и ты допустим хочешь использовать MySQL, можешь создавать CGI скрипты на C#, нужно только скачать MySQL Connector для C#

Я вот только что создал такой простой CGI скрипт:

using System;
using System.Text;
using MySql.Data.MySqlClient;

namespace ConsoleApplication1 {
    class Program {
        static void Main(string[] args) {
            MySqlConnection con = new MySqlConnection("Server=localhost;Database=testdb;Uid=root;Pwd=;");
            con.Open();
            MySqlCommand cmd = new MySqlCommand("SELECT name FROM persons", con);
            MySqlDataReader dr = cmd.ExecuteReader();
            Console.Write("Content-Type:text/html\n\n<html><head><title>Test CGI</title></head><body><table>");
            while (dr.Read()) {
                Console.Write("<tr><td>" + dr["name"].ToString() + "</td></tr>");
            }
            Console.Write("</table></body></html>");
        } 
    } 
}

Можешь вместо MySQL использовать LINQ. Когда откомпилируешь, переименовываешь расширение файла из exe в cgi, и ещё нужно mysql.dll перенести в папку где находится cgi скрипты, вот результат:

result.png

 


  • 0

#620
Tuco

Tuco
  • В доску свой
  • 1 179 сообщений
            MySqlConnection con = new MySqlConnection("Server=localhost;Database=testdb;Uid=root;Pwd=;");
            con.Open();
            MySqlCommand cmd = new MySqlCommand("SELECT name FROM persons", con);

 

Так уже не делают, все запросы должны идти через конструктор, не руками. Потому что если захочешь что-то поменять, замучаешься рефакторить. Или кто-то будет читать твой код. 

 

Для .net core на лине, походу можно через ado.net кидать запросы к mysql на linq.  Такое подозрение есть.


  • 0


Количество пользователей, читающих эту тему: 1

пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.