51090

ИССЛЕДОВАНИЕ ЭФФЕКТИВНОСТИ ИСПОЛЬЗОВАНИЯ DLL-БИБЛИОТЕК

Лабораторная работа

Информатика, кибернетика и программирование

Разработать два варианта приложения один со статическим вызовом dll-библиотеки другой с динамическим вызовом dll-библиотеки Путем физического замера или программным путем в разработанном приложении измерить Время работы приложения при статическом использовании dll-библиотеки Посчитать отношение периодов работы приложения с двумя типами dllбиблиотек в процентах Сделать вывод относительно преимуществ и недостатков использования dllбиблиотек с двумя типами связывания Краткие теоретические сведения DLL англ. Цели введения DLL...

Русский

2014-02-05

50.29 KB

3 чел.

Эмпирические методы

программной инженерии

ПЗАС-08-2

Швеца Дмитрия

Лабораторная работа №5

ИССЛЕДОВАНИЕ ЭФФЕКТИВНОСТИ ИСПОЛЬЗОВАНИЯ

DLL-БИБЛИОТЕК

Задание:

  1.  Ознакомиться с назначением, принципами построения и использования dll-библиотек
  2.  Ознакомиться со статическим и динамическим способами связывания с dll-библиотеками из приложений
  3.  Разработать две одинаковые dll-библиотеки (одну для статического связывания, другую для динамического связывания) с одной и той же экспортируемой функцией, которая выполняет следующее:
  4.  Читает из файла 100 целых чисел
  5.  Заполняет считанными числами массив из 100 элементов
  6.  Возводит элементы массива в квадрат
  7.  Сохраняет полученные значения в те же элементы массива
  8.  Сохраняет (переписывает) полученные значения в тот же файл
  9.  Разработать приложение, выполняющее только одно действие  вызов функции из разработанной dll-библиотеки в цикле (например из 100 проходов). Разработать два варианта приложения  один со статическим вызовом dll-библиотеки, другой  с динамическим вызовом dll-библиотеки
  10.  Путем физического замера или программным путем в разработанном приложении измерить Время работы приложения при статическом использовании dll-библиотеки
  11.  Посчитать отношение периодов работы приложения с двумя типами dll-библиотек в процентах
  12.  Сделать вывод относительно преимуществ и недостатков использования dll-библиотек с двумя типами связывания

Краткие теоретические сведения

DLL (англ. Dynamic-link library — библиотека динамической компоновки)  — динамическая библиотека, позволяющая многократное применение различными программными приложениями.

Цели введения DLL

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

Далее, предполагалось улучшить эффективность разработок и использования системных средств за счёт модульности. Замена DLL-программ с одной версии на другую должна была позволить независимо наращивать систему, не затрагивая приложений.

Исходные листинги dll-библиотеки и основного приложения

library MyDll;

procedure MyLib; stdcall;

var f:TextFile; i,j:byte; A:array [1..10,1..10] of integer;

begin

AssignFile(f,'Numb.txt'); rewrite(f);

randomize;

for i:=1 to 10 do begin

for j:=1 to 10 do

  write(f,random(50):5); writeln(f); end;

closeFile(f);  reset(f);

for i:=1 to 10 do begin

for j:=1 to 10 do begin

  read(f,A[i,j]); A[i,j]:=sqr(A[i,j]); end;

  readln(f); end;

closeFile(f);

rewrite(f);

for i:=1 to 10 do begin

for j:=1 to 10 do

  write(f,A[i,j]:10); writeln(f); end;

closeFile(f); end;

exports MyLib;

end.  

    

unit Unit1;  //Dynamic

var

 Form1: TForm1; H:Thandle=0;

 MyLib: procedure;

procedure TForm1.Button1Click(Sender: TObject);

var i,d1,d2,t:longint;

begin

d1:=GetTickCount;;

for i:=1 to 1000 do MyLib;

d2:=GetTickCount;; 

t:=d2-d1;

Edit1.Text:=intToStr(t)+' mc';

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

 MyLib;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

H:=LoadLibrary('MyDll.dll');

if H<>0 then begin

  MyLib:=GetProcAddress(H,'MyLib');

  end

  else showmessage('Не удалось загрузить библиотеку!');

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

FreeLibrary(H);

end;

end.

unit Unit1;  //Statyc

var  procedure MyLib; external 'MyDll.dll';

procedure TForm1.Button1Click(Sender: TObject);

var i,d1,d2:longint;

begin

d1:=GetTickCount;

for i:=1 to 1000 do MyLib;

d2:=GetTickCount;

edit1.Text:=inttostr(d2-d1)+' mc';

end;


 

А также другие работы, которые могут Вас заинтересовать

8987. Проблемы и предмет социальной философии 33 KB
  Проблемы и предмет социальной философии Традиционное философствование и социально-философская проблематика Сверхчеловеческий характер всеобщих категорий Является ли социальная философия философией человека Отрыв бытия социального от бытия человече...
8988. Специфика социального познания 44.5 KB
  Специфика социального познания Проблема истины является одной из древнейших в философии. Сама философия является порождением интенции к истине. Даже этимология термина философия в скрытой форме содержит интерес к истине и истинности вещей и знаний...
8989. Социальное и гуманитарное как методологическая проблема обществознания 36.5 KB
  Социальное и гуманитарное как методологическая проблема обществознания Социально-исторические изменения в обществе, ставшие реальностью сегодняшнего дня, требуют своего философского осмысления и нуждаются в разработке новых методов описания и анализ...
8990. Рефлексия как методология в социально-гуманитарном познании 53 KB
  Рефлексия как методология в социально-гуманитарном познании Методология - это область деятельности, функцией которой является создание и совершенствование интеллектуальных средств организации рефлексивных процессов. Поскольку осознанное отношение к ...
8991. Этические проблемы современной российской науки 54.5 KB
  Этические проблемы современной российской науки Социальное поведение регулируется правом и этикой. Право определяет однозначные общественные отношения, в то время как этика служит вектором поведения в неоднозначных, противоречивых ситуациях, н...
8992. Общие проблемы философии науки 168.5 KB
  Общие проблемы философии науки Вопрос № 13: Идеалы и нормы исследования, их социокультурная размерность и роль в научной деятельности. Ответ на вопрос: Научная деятельность, как и любая другая, руководствуется, во-первых, вполне определенным...
8993. Лекции по философии. Соотношение философии и науки по предмету 262.48 KB
  Лекция № 1. Предмет философии. Основная проблема: соотношение философии и науки по предмету. Цель: определить предмет философии как отношение человека к миру, так что аспекты этого отношения (онтологический, гносеологический и аксиологический) опред...
8994. Определение места философии в жизни человека 362.5 KB
  Определение места философии в жизни человека. Основная часть. Хайдеггер М. Основные понятия метафизики. Мамардашвили М. Как я понимаю философию. Соловьев Вл. Исторические дела философии. Бердяев Н.А. Философия как творческий акт. Приложение. Соловье...
8995. Философия античности. Природа души и ее свойства. Мир идеей и его познание 319 KB
  Философия античности. Основная часть. Платон: Природа души и ее свойства. Мир идеей и его познание. Теоретическое знание и философское познание. Философия как стремление к мудрости. Аристотель: О философии. О началах и причинах вещей. Материя и движ...