Как я могу записать сценарий запуска для Mac OS X?

Вчера я выпустил небольшой сайт * глоток> для отслеживания представителя, который использовал общую базу данных SQLite для всех посетителей. К сожалению, даже со скромной загрузкой, что это поставило мой хост, который это выполняло вполне медленно. Это вызвано тем, что вся база данных была заблокирована каждый раз, когда кто-то просмотрел страницу, потому что это содержало, обновляет/вставляет. Я скоро переключился на MySQL и в то время как у меня не было большого количества времени для проверения его, это кажется намного более масштабируемым, чем SQLite. Я просто помню медленные загрузки страницы, и иногда получение базы данных заблокировало ошибку при попытке выполнить запросы от оболочки в sqlite. Однако я выполняю другой сайт от SQLite очень хорошо. Различие - то, что сайт статичен (т.е. я - единственный, который может изменить базу данных), и таким образом, это работает просто великолепно для параллельных чтений. Мораль истории: только используйте SQLite для веб-сайтов, где обновления базы данных происходят редко (менее часто, чем каждая загруженная страница).

редактирование : Я просто понял, что не мог быть справедливым к SQLite - я не индексировал столбцов в базе данных SQLite, когда я служил ему от веб-страницы. Это частично вызвало замедление, которое я испытывал. Однако наблюдение за блокировкой базы данных стоит - если у Вас будут особенно тягостные обновления, производительность SQLite не будет соответствовать MySQL или Пост-ГРЭС.

другое редактирование: , Так как я отправил это почти 3 месяца назад, у меня была возможность тесно исследовать масштабируемость SQLite, и с несколькими приемами это может быть довольно масштабируемо. Как я упомянул в своем первом редактировании, индексы базы данных существенно уменьшают время запроса, но это - больше общего наблюдения о базах данных, чем это о SQLite. Однако существует другой прием, который можно использовать для ускорения SQLite: транзакции . Каждый раз, когда необходимо сделать несколько записей базы данных, поместите их в транзакции. Вместо того, чтобы писать в (и заблокировать) файл каждый раз, когда запрос записи выпущен, запись только произойдет однажды, когда транзакция завершится.

сайт, что я упоминаю, что выпустил в первом абзаце, был переключен назад на SQLite, и это работает вполне гладко, как только я настроил свой код в нескольких местах.

* сайт больше не не доступен глоток>

5
задан John Rudy 7 December 2009 в 04:43
поделиться

3 ответа

Предпочтительный способ запуска программ при запуске OS X - создание демона launchd , как описано здесь .

11
ответ дан 18 December 2019 в 14:47
поделиться

В mac os x вы также можете просто запустить "open program.jar" (или любую папку, '-a' для собственных приложений), и он откроется отдельно от терминала в любой среде по умолчанию. настройки, которые он использовал бы, если бы вы просто дважды щелкнули по нему.

Вы также можете добавить программу (или сценарий) к элементам входа пользователя через Системные настройки> Учетные записи> 'имя пользователя'> Элементы входа. Это полностью наведи и щелкни и не требует сценария оболочки

2
ответ дан 18 December 2019 в 14:47
поделиться

Сценарий оболочки будет примерно таким:

cd /directory/to/jar
java -jar Jar.jar

Или, может быть, вам действительно не нужно писать Jar.jar, только Jar. Я не совсем помню.

0
ответ дан 18 December 2019 в 14:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: