Анализ производительности JavaScript

Обзор современных платформ программирования. История создания скриптовых языков. Основные области использования JavaScript. Реализация Windows-приложения, выбор языков и сред программирования. Типы данных, разработка скрипта поиска по сайту на языке.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 13.07.2012
Размер файла 639,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Министерство образования и науки РФ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Вятский государственный гуманитарный университет»

Факультет информатики, математики и физики

Кафедра прикладной математики и информатики

КУРСОВАЯ РАБОТА

АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ JavaScript

Киров

2011

Оглавление

  • Вступление
    • Обзор современных платформ программирования
    • Задачи
  • Общий обзор JavaScript
    • История создания
    • Типы данных
    • Переменные
    • Операторы
    • Операторы управления
    • Процедуры
    • Объекты
    • Вывод
  • Реализация скрипта поиска
    • Проектирование приложения
    • Выбор языков и сред программирования
    • Тестирование приложений
  • Заключение
  • Список литературы

Вступление

В настоящее время стали очень популярны веб приложения, да и вообще все движется в сторону веб. Это обусловлено развитием интернета, увеличение скорости передачи данных. Так же существует множество технологий, позволяющих создавать полноценные приложения, которые могут выполняться в браузере. Современному пользователю необязательно хранить файлы на своем компьютере, достаточно просто иметь доступ в интернет, и работать уже не с windows приложениями, а с веб приложениями

скрипт поиск сайт java

Обзор современных платформ программирования

Turbo Pascal (Турбо Паскаль). Процедурно-ориентированный язык. Усовершенствованная версия языка Pascal, изобретенного еще в 60-х годах. В настоящее время используется в качестве учебного языка во всех высших и средних учебных заведениях, а также в школах. Этот язык знает любой программист. На основе синтаксиса Паскаля были созданы другие более функциональные языки, но уже с объектно-ориентированным принципом программирования (Object Pascal, Delphi).

C (Си). Си является стандартизированным процедурным языком. Разработан был еще в 1970-х годах. Создавался специально для использования в ОС Unix, но впоследствии был модифицирован и портирован на другие операционные системы. Ценят Си за его эффективность. Си - самый популярный язык для создания системного ПО, а также прикладных программ.

С++ (Си++). Является компилируемым, строго типизированным языком общего назначения. Поддерживает процедурный, функциональный, обобщенный и объектно-ориентированный принцип программирования. С++ используют для написания сложных приложений. Для работы с С++ на платформе IBM PC наиболее популярна система Turbo C++ американской фирмы Borland.

С# (C-Sharp - Си-Шарп). Объектно-ориентированный язык программирования высокого уровня. Также поддерживает контекстно-ориентированную концепцию. Этот язык - своеобразный помощник программистам, работающим с языками C и C++. Он помогает более эффективно создавать Интернет-приложения для платформы Microsoft.NET. Имеет С-подобный синтаксис и по своему характеру напоминает С++ и Java.

Java (произносится Джава или Ява). Один из самых простых и понятных ЯП. Язык является объектно-ориентированным, высокоуровневым. Изначально был разработан для бытовой электроники и назывался Oak, но позже был переименован в Java и сейчас используется для написания серверного ПО, апплетов и приложений. Синтаксис Java максимально приближен к синтаксису С++, но принцип работы Java совсем другой.

PHP (PHP: Hypertext Preprocessor -- PHP: гипертекстовый препроцессор). Рефлексивный язык программирования. Был разработан для работы с базами данных и создания динамических веб-страниц. Однако сейчас PHP в основном используется для верстки сайтов и создания веб-приложений. Благодаря своей функциональности, простоте и скорости выполнения PHP является популярнейшим скриптовым языком для программирования в области сети Интернет.

Perl (Practical Extraction and Report Language). Многоцелевой язык. Создавался в помощь Unix-утилитам. Он решает системные задачи, с которыми не могли в полной мере справиться существующие тогда Unix-утилиты, такие как sed и awk. В настоящее время Perl содержится в любом дистрибутиве Linux и прочих Unix-системах. Также теперь он портирован на Windows и многие другие платформы. Perl используется всеми администраторами мира для автоматизации пользовательских повседневных задач.

HTML (HyperText Markup Language). Язык гипертекстовой разметки. Производит статическое размещение страниц в сети Интернет. Абсолютное большинство всех веб-страниц написаны на языке HTML (или XHTML). Интернет-браузер интерпретирует HTML и выводит его программный код в понятном для человека виде (в виде документа).

SQL. Язык управления реляционными базами данных. Хоть по своей сути SQL и не является полноценным языком программирования, его стандарт позволяет ему расширять свою функциональность до полноценного языка посредством создания процедурных расширений. Сейчас SQL является одним из самых популярных языков управления реляционными базами данных. Этой популярности не мешает даже наличие ряда альтернатив.

Задачи

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

• Реализовать аналогичный алгоритм на другом языке программирования.

• Сравнить время выполнения скрипта и программы.

Общий обзор JavaScript

История создания

Объектные модели скриптовых языков напрямую связаны с тэгами HTML. При открытии HTML страницы, интерпретатор языка создает объекты со свойствами, которые определяются значениями тэгов. Браузер отражает страницу в свойствах объектов, этот процесс называют отражением (reflection). Объекты образуют иерархическую структуру, отражающую структуру HTML-страницы. На верхнем уровне расположен объект window, являющийся активным окном браузера. Далее следуют объекты frame - фрейм, document - сам документ, location - адрес документа и history - список ранее загруженных документов, и т.д. Свойства объектов устанавливаются соответствующими параметрами тэгов страницы или системных параметров. Это называется объектная модель документа (DOM). При создании (генерировании) страниц возникает вопрос, генерировать их на сервере, или же отдать эту роль клиенту. В 1995 году компания Netscape разработала язык программирования JavaScript - механизм управления веб - страницами на стороне клиента. Язык JavaScript позволяет изменять значения атрибутов тегов HTML и свойств среды отображения во время просмотра страницы без ее повторной загрузки. Например можно вывести сообщение об ошибке, поле для ввода пароля, сменить фон страницы, открыть новое окно и т.д. Это как бы делает странички “живыми”. Однако нельзя изменять свойства уже отображенного обьекта, для этого необходима перезагрузка страницы. Программы на этом языке называются скриптами. Они подключаются напрямую к HTML и, как только загружается страничка - тут же выполняются. Программы на JavaScript - обычный текст, они не требуют компиляции. Когда создавался язык JavaScript, у него изначально было другое название: «LiveScript». Но тогда был очень популярен язык Java, и было решено, что схожее название сделает новый язык более популярным. Планировалось, что JavaScript будет эдаким «младшим братом» Java. Однако, история распорядилась по-своему, и сейчас это совершенно независимый язык, со своей спецификацией, которая называется ECMAScript, и к Java не имеет никакого отношения. JavaScript может работать с мышью и клавиатурой, посылать на сервер и загружать данные с сервера без повторной загрузки страницы (AJAX). jQuery - библиотека JavaScript, сфокусированная на взаимодействии JavaScript и HTML. С ее помощью упрощается работа с элементами DOM, так же предоставляет достаточно удобный API для работы с AJAX. AJAX - не является чем то самостоятельным, - это слияние нескольких технологий: асинхронный JavaScript и XML. Его суть заключается в том, клиенту не приходилось перезагружать страницу полностью, а обмен данными происходил в фоновом режиме, таким образом приложения становятся быстрее и удобнее.

Язык программирования JavaScript был разработан кампанией Netscape в 1995 году, изначально он разрабатывался для того чтобы заменить макросы, при этов синтаксис его должен быть схож с СИ. Изначально язык назвали LiveScript, но в то время, Java был очень популярен, поэтому LiveScript переименовали в JavaScript. Синтаксис JavaScript схож с синтаксисом языка Java - поэтому его часто называют Java-подобным. Клиентские приложения выполняются браузером на машине пользователя, серверные приложения выполняются на сервере.

При создании обоих типов приложений используется общий компонент языка - ядро, в состав которого входят определения стандартных объектов и конструкций (переменные, функции, основные объекты и средство LiveConnect взаимодействия с Java-апплетами), и компоненты дополнений языка, которые содержат специфические для каждого типа приложений определения объектов.

Приложения клиента встраиваются в HTML-страницы и исполняются браузером во время отображения документа в окне. JavaScript является самым популярным языком программирования, используемым для разработки веб-приложений на стороне клиента. Серверные приложения для увеличения производительности предварительно компилируются в промежуточный байт-код.

Основные области использования JavaScript при создании интерактивных HTML-страниц:

• Динамическое создание документа с помощью сценария

• Оперативная проверка достоверности заполняемых пользователем полей форм HTML до передачи их на сервер

• Создание динамических HTML-страниц совместно с каскадными таблицами стилей и объектной моделью документа

• Взаимодействие с пользователем при решении “локальных” задач, решаемых приложением JavaScript, встроенном в HTML-страницу

Типы данных

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

JavaScript поддерживает четыре простых типа данных:

• Целый

• Вещественный

• Строковый

• Булевый, или логический

Переменные

Каждая переменная имеет имя, которое должно начинаться с буквы латинского алфавита, либо символа подчеркивания “_”, за которым следует любая комбинация алфавитно-цифровых символов или символов подчеркивания. Следующие имена являются допустимыми именами переменных

Temp1

MyFunction

_my_Method

Язык JavaScript чувствителен к регистру. Это означает, что строчные и прописные буквы алфавита считаются разными символами.Определить переменную можно двумя способами:

Оператором var

• Оператором присваивания (=)

Оператор var используется как для задания, так и для инициализации переменной.

Операторы

Оператор присваивания рассматривается как выражение присваивания, которое вычисляется равным выражению правой части, и в то же время он присваивает вычисленное значение выражения переменной, заданное в левой части оператора.

Арифметические выражения создаются арифметическими операторами (табл. 2).

Таблица. Арифметические операторы

Оператор

Название

+

Сложение

-

Вычитание

*

Умножение

/

Деление

%

Остаток от деления целых чисел

++

Увеличение значения переменной на единицу

--

Уменьшение значения переменной на единицу

Операторы управления

Весь набор управления языка можно разбить на три группы:

• Операторы выбора, или условные

• Операторы цикла

• Операторы манипулирования с объектами

Операторы цикла

Оператор цикла повторно выполняет последовательность операторов JavaScript, определенных в его теле, пока не выполнится некоторое заданное условие. В языке существует два оператора цикла: for и while. Они отличаются механизмом организации цикла.

Манипулирование объектами

Четыре оператора JavaScript предназначены для работы с объектами. Это оператор new, создающий новый объект, операторы for…in и with и ключевое слово this.

Процедуры

Процедура, или функция, - это именованная последовательность операторов, которая инициализируется и выполняется простой ссылкой на имя функции.

Процедура задается оператором function, имеющим следующий синтаксис:

function имя_функции ([параметры] {

[операторы]

}

Объекты

На самом верхнем уровне иерархии находится объект window, представляющий окно браузера и являющийся “родителем” всех остальных объектов. Расположенные ниже в иерархии объекты могут иметь свои подчиненные объекты. На рис. 1 показана структура объектов клиента (браузера).

Вывод

В современном мире интернет технологии выходят на первый план, оттесняя Desktop приложения. Скорость интернета для домашних пользователей постоянно увеличивается. Уже сейчас существует множество сервисов, которые предоставляют огромное количество возможностей, использовать которые можно просто через браузер, например Photoshop онлайн. Поэтому разработка приложений для Web сейчас достаточно актуальна, JavaScript развивается, создаются новые библитеки, улучшаются уже созданные. JavaScript встраивается в Html страницу и загружается вместе с ней, либо выносится в отдельный файл, исполняется браузером. Для Web можно писать приложения например на Java или C#, но в таком случае пользователю придется устанавливать дополнительные компоненты для браузера, что не очень удобно. JavaScript же не требует установки плагинов.

Реализация скрипта поиска

Проектирование приложения

Для решения, поставленных задач нам потребуется разработать три приложения.

• Первое должно принимать на вход документы в htlm формате и составлять индекс содержащихся в них слов.

• Второе - Web приложение с использованием JavaScript, работающее с составленным индексом и осуществляющее поиск по нему.

• Третье - Windows приложение на любом другом языке пограммирования, реализующее тот же алгоритм что и второе приложение.

Выбор языков и сред программирования

Для создания поисковика по сайту необходимо написать скрипт, который мог бы найти любое слово, или словосочетание. Результат поиска должен выводиться в отдельном окне, в нем же показывается количество результатов и время работы скрипта, для сравнения с windows приложением. Так как JavaScript не может работать с файлами, необходимо заранее индексировать все слова всех страниц сайта. Для этого требуется написать приложение которое будет разбирать странички и удалять тэги оставляя лишь осмысленный текст. Это приложение запишет в файл массив слов и массив указателей на странички в которых встречаются эти слова. Сам это файл и будет скрипт поиска, то есть программа должна формировать уже готовый скрипт для конкретного набора страничек. Далее для сравнения производительности необходимо написать аналогичное скрипту приложение.

Для реализации windows приложений был выбран язык Java, так как он близок по синтаксису, а так же является платформо-независимым как и JavaScript. В ходе работы все вышеуказанные приложения были реализованы и протестированы. В качестве IDE для Java использовлся NetBeans 7.1.

Первая программа:

В первой программе реализованы первое и третье приложение. Программе указывается путь к папке в которой находятся html файлы. Все другие типы файлов приложением игнорируются. Затем поочередно из каждого файла считываются данные. Чтение производится построчно. Каждая строка разбивается на слова, если какого либо слова нет в словаре уникальных слов, то оно туда добавляется. Таким образом в приложении формируется массив неповторяющихся слов, собранных из всех html документов, массив ссылок на документы в которых эти слова содержатся В программе реализована процедура, создающая скрипт поиска по сайту, массив ссылок и массив слов записывается в скрипт, а сама процедура поиска добавляется как простой текст, таким образом приложение для различного набора файлов создаст разные массивы, но процедура поиска на JavaScript будет одна и та же.

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

Программа на JavaScrip работает точно так же как вторая часть windows приложения.

Тестирование приложений

Для тестирования приложений было составлено 30 html файлов, с общим набором уникальных слов более 5000. Так как для современных компьютеров поиск по 5000 слов выполняется быстро, было решено искусственно затормозить работу программ, для этого, для одного запроса алгоритм поиска вызывался 1000 раз для JavaScript и Java. Набор тестов состоял из 50 уникальных тестов, включающих запросы для одного слова и для двух слов, так же слова в брались в разных положениях в базе.

Заключение

В ходе работы был написан скрипт поиска по сайту и аналогичная программа на языке Java. Время измерялось встроенными функциями в миллисекундах. Было произведено около 50 тестов, после этого было найдено среднее значении скорости для каждого браузера.

Результаты приведены ниже:

• Слово в начале базы

• Слово в середине базы

• Слово в конце базы

• Оба слова в начале

• Первое в начале, второе в середине

• Первое в начале, второе в конце

Как видно из приведенных диаграмм, скрипт поиска в каждом браузере выполняется примерно с одинаковой скоростью, причем скорость напрямую зависит от положения слова в словаре. Чем ближе оно к концу, тем дольше выполняется поиск. Аналогично и Windows приложение, которое работает примерно в 1,5 - 2 раза быстрее.

Вывод. Производительность JavaScript зависит от браузера и его настроек, но несмотря на то что он работает медленнее аналогичных программ для PC, заменять его на другие технологии не следует.

Список литературы

Кенин А.М., Печенкина Н.С. Новый уровень создания HTML-документов. - Екатеринбург: Деловая книга, 1996.

• Дэвис С. Языки JavaScript и VBScript. - К.: Диалектика, 1996.

• Зубкова С.В. Интерактивные Web-документы. - М.: ДМК Пресс, 2000.

• Ратбон Э. JavaScript для чайников. - К.: Диалектика, 1995.

http://www.intuit.ru/department/internet/js/

Размещено на Allbest.ru


Подобные документы

  • Сравнительная характеристика, возможности и функции языков программирования JavaScript и PHP. Основные области их использования. Разработка интерактивного Web-приложения с применением JavaScript на примере теста по теме "Программирование на языке Delphi".

    курсовая работа [19,3 K], добавлен 01.07.2014

  • Исследование возможностей и областей использования языка программирования JavaScript. Сравнительный анализ языков программирования JavaScript и PHP. Разработка интерактивного Web-приложения на примере теста по теме "Программирование на языке Delphi".

    практическая работа [26,0 K], добавлен 04.02.2015

  • Описание основных используемых технологий и языков программирования. Язык программирования JavaScript. Таблица стилей CSS. Общая схема работы web-приложения. API система "1С-Битрикс: Управление сайтом". Формирование требований к сценариям работы.

    дипломная работа [186,4 K], добавлен 30.04.2014

  • Характеристика возможностей редактора DreamWeaver и Front Page. Особенности языков программирования PHP и JavaScript. Основные требования, предъявляемые к Web-странице. Специфика программного обеспечения для ее создания и эффективности использования.

    курсовая работа [44,6 K], добавлен 03.02.2011

  • Понятия языка программирования, разновидности и характеристика языков. Исторический обзор их создания и применения. Классификация, примеры использования. Характеристики языков программирования с точки зрения элементов объектной модели, их популярность.

    реферат [463,6 K], добавлен 07.09.2009

  • Ознакомление с методами анализа популярности языков программирования. Рассмотрение логической модели базы данных дистанционного практикума. Разработка листинга скрипта создания таблицы-справочника. Анализ статистики по применению языков программирования.

    диссертация [1,4 M], добавлен 10.07.2017

  • Характеристика компьютерных игр и их влияние на формирование навыков Softskills. Геймификация как современный тренд в образовании. Обзор наиболее популярных языков программирования для создания игровых приложений. Техническое задание для приложения.

    дипломная работа [928,4 K], добавлен 13.01.2023

  • Нормализация предметной области "Сайт знакомств" и ее программная реализация с использованием СУБД MySQL, языка HTML, технологии PHP и ADO, скриптовых языков VBScript или JavaScript. Руководство программиста, тестирование, исходный текст приложения.

    реферат [29,0 K], добавлен 09.09.2010

  • Рассмотрение общих сведений и уровней языков программирования. Ознакомление с историей развития, использования языков программирования. Обзор достоинств и недостатков таких языков как Ассемблер, Паскаль, Си, Си++, Фортран, Кобол, Бейсик, SQL, HTML, Java.

    курсовая работа [759,5 K], добавлен 04.11.2014

  • Сущность и основные свойства алгоритмов, принципы их составления. Скалярные типы данных в языке Pascal. Тождественность и совместимость типов данных. Понятие и основные этапы развития, а также движущие силы эволюции языков программирования, типы.

    презентация [85,8 K], добавлен 18.05.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.