Ниже приведен пример передачи параметров в документ fxml через пространство имен.
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.VBox?>
<VBox xmlns="http://javafx.com/javafx/null" xmlns:fx="http://javafx.com/fxml/1">
<BorderPane>
<center>
<Label text="$labelText"/>
</center>
</BorderPane>
</VBox>
Определить значение External Text
для переменной пространства имен labelText
:
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.io.IOException;
public class NamespaceParameterExampleApplication extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws IOException {
final FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("namespace-parameter-example.fxml"));
fxmlLoader.getNamespace()
.put("labelText", "External Text");
final Parent root = fxmlLoader.load();
primaryStage.setTitle("Namespace Parameter Example");
primaryStage.setScene(new Scene(root, 400, 400));
primaryStage.show();
}
}
Небольшой скрипт типа
rm memory.log
while true; do free >> memory.log; sleep 1; done
Таким образом, я знаю, что опаздываю к этой игре, но я просто придумал этот ответ, поскольку я должен был сделать это и действительно не хотел дополнительные поля, которые vmstat
, free
, и т.д.... все, будет казаться, будут производить без избыточной фильтрации. Таким образом, вот ответ, который я придумал:
top -bd 0.1 | grep 'KiB Mem' | cut -d' ' -f10 > memory.txt
ИЛИ:
top -bd 0.1 | grep 'KiB Mem' | cut -d' ' -f10 | tee memory.txt
стандартный вывод от [1 141] top
, когда grep
луг с [1 143] Kib Mem
:
KiB Mem : 16047368 total, 8708172 free, 6015720 used, 1323476 buff/cache
Путем выполнения этого посредством сокращения, мы отфильтровываем к буквально просто, число до [1 144] использовало
, пользователь может действительно изменить 0.1
к другому числу для выполнения различных частот дискретизации получения. В моем случае я хотел использовать top
также, потому что можно выполнить статистику памяти быстрее, чем 1 секунда на получение, как Вы видите здесь, я хотел получить статистику каждая 1/10-я из секунды.
ПРИМЕЧАНИЯ: действительно оказывается, что передача по каналу до [1 148] cut
вызывает КРУПНУЮ задержку вывода чего-либо в файл. Как мы позже узнали, это намного быстрее, чтобы не учесть cut
команда во время сбора данных, затем выполнить команду сокращения на выходном файле позже. Кроме того, у нас не было потребности в метках времени в наших тестах.
Это таким образом смотрит следующим образом:
Начните Регистрироваться:
top -bd 0.1 | grep 'KiB Mem' | tee memory_raw.txt
Вход Выхода:
ctrl-z (to exit logging)
Фильтр:
2 уровня сокращения (фильтрация), сначала запятой, затем пространством. Это происходит из-за выравнивания [1 153] top
и обеспечивает намного более чистый вывод:
cut memory_raw -d',' -f3 | tee memory_used_withlabel.txt
cut memory_used_withlabel.txt -d' ' -f3 | tee memory_used.txt
Вы можете указать что-то вроде
vmstat X >> mylogfile
в сценарий запуска. Поскольку ваше приложение уже запущено, вы можете просто добавить эту строку в конец сценария инициализации, который ваше приложение уже использует. (где X - количество секунд между сообщениями журнала)