精华内容
下载资源
问答
  • 所以,我们应该先对静态动态静态概念要做到了解。 所谓静态:在我个人看来就是单纯的html网页。一般来说仅用来查看。 而动态:绝对不是能动的网页,而是用户能够服务器进行动态数据交互。如表单数据...

    页面静态化作为大型网站提速的三大技术之一也是非常重要的,另外还有Memcached和mysql优化技术。

    所以,我们应该先对静态,动态,和伪静态的概念要做到了解。

    所谓静态:在我个人看来就是单纯的html网页。一般来说仅用来查看。

    而动态:绝对不是能动的网页,而是用户能够和服务器进行动态数据交互。如表单数据提交到服务器等

    而伪静态:就是隐藏动态网页的数据,以静态的网页的格式展现。

    在学习静态化技术之前,要知道的是,动态的数据交互不利于收索引擎的搜索,而必须seo(搜索引擎优化),更不利于减小服务器压力。所以页面静态化应运而生。

    为了说明静态化处理的重要性这是我做的请求测试。

    页面请求服务器压力测试:

    ab.exe -n 请求次数 -c 请求人数 地址。

    会出现下面的测试结果:(php页面测试)

    压力测试

    这是html的请求测试:

    html页面请求

    显而易见:请求html要比请求php页面效率更高。所以完全有必要对网页进行页面静态化处理

    展开全文
  • Linux-动态链接与静态链接对比(动态和静态库)

    千次阅读 多人点赞 2017-12-14 17:52:46
    一、库的基础概念: 在windows平台linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。...按照库的使用方式又可分为动态和静态库,在不同平台下...

    ####一、库的基础概念:

    #####在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。通俗的说就是把这些常用函数的目标文件打包在一起,提供相应函数的接口,便于程序员使用。在使用函数时,只需要包对应的头文件即可。按照库的使用方式又可分为动态库和静态库,在不同平台下对应后缀也有所不同。
    #####WINDOWS下:.dll 后缀为动态库,.lib 后缀为静态库;
    #####LINUX下:.so后缀为动态库,.a后缀为静态库。


    ####二、静态库与静态链接

    #####<1>静态库:
    静态库可以简单的看成一组目标文件的集合,即很多目标文件经过压缩打包后形成的文件。比如在我们日常编程中,如果需要使用printf函数,就需要包stdio.h的库文件,使用strlen时,又需要包string.h的库文件,可是如果直接把对应函数源码编译后形成的.o文件直接提供给我们,将会对我们的管理和使用上造成极大不便,于是可以使用**“ar”**压缩程序将这些目标文件压缩在一起,形成libx.a静态库文件。
    注:静态库命名格式:lib + "库名称”+ .a(后缀) 例:libadd.a就是一个叫add的静态库


    #####<2>静态链接:
    #####对于静态库,程序在编译链接时,将库的代码链接到可执行文件中,程序运行时不再需要静态库。在使用过程中只需要将库和我们的程序编译后的文件链接在一起就可形成一个可执行文件。
    注:详细关于静态库及静态链接可参考《程序员的自我修养——链接、装载与库》第四章
    #####通过一个例子来了解下如何将我们自己写的头文件和代码同时进行编译链接,最终生成可执行文件:

    /main.c/
    
    #include <stdio.h>
    #include "add.h"
    
    int main()
    {
    	int ret = add(3, 4);
    	printf("3 + 4 = %d\n",ret);
    
    	return 0;
    }
    
    /add.c/
    
    #include "add.h"
    
    int add( int x, int y)
    {	
    	return x + y;
    }
    
    
    /add.h/
    
    #pragma once
    #include <stdio.h>
    
    int add( int x, int y);
    
    /Makefile/
    
    main : main.c libadd.a
    	gcc main.c -L . -ladd -o main
    	//-L为指定路径 .为当前目录下 -l+库名字,编译器可在指定目录下自己寻找名为add的库文件
    	
    libadd.a : 
    	gcc -c add.c -o add.o
    	
    	//ar -rc将多个编译后的文件打包为一个静态库文件
    	ar -rc libadd.a add.o
    
    .PHONY:clean
    clean:
    	rm main libadd.a
    

    #####make后输出截图:
    这里写图片描述

    #####<3>缺点:
    #####1、**内存和磁盘空间浪费:静态链接方式对于计算机内存和磁盘的空间浪费十分严重。**假如一个c语言的静态库大小为1MB,系统中有100个需要使用到该库文件,采用静态链接的话,就要浪费进100M的内存,若数量再大,那浪费的也就更多。例如下图:程序1和程序2都需要用到Lib.o,采用静态链接的话,那么物理内存中就会存放两份对应此文件的拷贝。

    这里写图片描述

    #####**2、更新麻烦:**比如一个程序20个模块,每个模块只有1MB,那么每次更新任何一个模块,用户都得重新下载20M的程序。


    ####三、动态库与动态链接

    #####**<1>动态库:**程序在运行时才去链接动态库的代码,多个程序共享库的代码。一个与动态库链接的可执行文件仅仅包含它用到的函数入口地址的一个表,而不是外部函数所在目标文件的整个机器码。
    注:动态库命名格式:lib + "库名称”+ .so(后缀) 例:libadd.so就是一个叫add的动态库


    #####**<2>动态链接:**由于静态链接具有浪费内存和模块更新困难等问题,提出了动态链接。基本实现思想是把程序按照模块拆分成各个相对独立部分,在程序运行时才将他们链接在一起形成一个完整的程序,而不是像静态链接那样把所有的程序模块都链接成一个单独的可执行文件。所以动态链接是将链接过程推迟到了运行时才进行。
    #####同样,假如有程序1,程序2,和Lib.o三个文件,程序1和程序2在执行时都需要用到Lib.o文件,当运行程序1时,系统首先加载程序1,当发现需要Lib.o文件时,也同样加载到内存,再去加载程序2当发现也同样需要用到Lib.o文件时,则不需要重新加载Lib.o,只需要将程序2和Lib.o文件链接起来即可,内存中始终只存在一份Lib.o文件。
    这里写图片描述
    #####>注:详细关于动态库及动态链接可参考《程序员的自我修养——链接、装载与库》第七章。


    #####动态库和动态链接的例子依然使用上面的代码,输出结果也相同,唯一需要改变的就是Makefile文件。

    /Makefile/
    main : main.c libadd.so
    	gcc main.c -L . -ladd -o main
    
    libadd.so : 
    	gcc -fPIC -shared add.c -o libadd.so
    	//-shared表示输出结果是共享库类型的  -fPIC表示使用地址无关代码奇数来生产输出文件
    	
    .PHONY:clean
    clean:
    	rm main libadd.so
    

    #####注:<1>当我们生成可执行文件后,可使用ldd命令查看该可执行文件所依靠的动态库。
    这里写图片描述


    #####<2>前面提到windows和Linux下库文件的后缀不同,更根本的原因在于二者文件格式都不同。可以通过file一个动态库查看Linux下动态库的文件类型其实是ELF格式。ELF动态链接文件被称为动态共享对象(DSO,Dynamic Shared Objects),简称共享对象;在windows下,动态链接文件被称为动态链接库(Dynamic Linking Library),也就是.dll文件后缀的全称



    #####<3>优点:①毋庸置疑的就是节省内存;②减少物理页面的换入换出;③在升级某个模块时,理论上只需要将对应旧的目标文件覆盖掉即可。新版本的目标文件会被自动装载到内存中并且链接起来;④程序在运行时可以动态的选择加载各种程序模块,实现程序的扩展。


    图片截图来自《程序员的自我修养——链接、装载与库》

    展开全文
  • 1.静态资源和动态资源的概念 简单来说: 静态资源:一般客户端发送请求到web服务器,web服务器从内存在取到相应的文件,返回给客户端,客户端解析并渲染显示出来。 动态资源:一般客户端请求的动态资源,先将请求...

    1.静态资源和动态资源的概念

    简单来说:

    静态资源:一般客户端发送请求到web服务器,web服务器从内存在取到相应的文件,返回给客户端,客户端解析并渲染显示出来。

    动态资源:一般客户端请求的动态资源,先将请求交于web容器,web容器连接数据库,数据库处理数据之后,将内容交给web服务器,web服务器返回给客户端解析渲染处理。

    2.静态资源和动态资源的区别

    a.静态资源一般都是设计好的html页面,而动态资源依靠设计好的程序来实现按照需求的动态响应;

    b.静态资源的交互性差,动态资源可以根据需求自由实现;

    c.在服务器的运行状态不同,静态资源不需要与数据库参于程序处理,动态可能需要多个数据库的参与运算。


    展开全文
  • 动态URL、静态URl、伪静态URL概念 及区别

    千次阅读 多人点赞 2019-04-16 13:29:22
    我们说url的动态静态、伪静态三种形式,其实从严格分类上来说,伪静态也是动态的一种,只是表现形式为静态。 参考:https://bk.likinming.com/post-2674.html 动态URl 动态页面的特征 1、以ASP、PHP、JSP、ASP...

    我们说url的动态、静态、伪静态三种形式,其实从严格分类上来说,伪静态也是动态的一种,只是表现形式为静态。
    参考:https://bk.likinming.com/post-2674.html

    动态URl

    动态页面的特征

    1、以ASP、PHP、JSP、ASP.net、Perl、或CGI等编程语言制作的;
    2、不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页;
    3、内容存在于数据库中,根据用户发出的不同请求,其提供个性化的网页内容;
    4、内容不是存在于页面上,而是在数据库中,从而大大降低网站维护的工作量。

    动态页面优缺点

    优点:空间使用量非常小,一般几万条数据的网站,可能只有几M的文件大小,而使用静态页面少则十几M,多则几十M。因为数据是从数据库里面调用而来,所以如果要更改某些数值,直接更改数据库,那么所有的动态页面,就会自动更新了。这一点相比静态页面好处就大很多了。

    缺点:用户访问速度较慢,为什么会访问动态页面较慢呢。这个问题我们就必须从动态页面的访问机制说起了,其实我们的服务器上面有一个解析引擎,当用户访问的时候,这个解析引擎就会把动态页面翻译为静态页面,这样大家就能够在浏览器里面查看源码了。而这个源码就是解释引擎翻译以后的源码。除访问速度较慢以外,动态页面的数据是从数据库里面调用过来的,如果访问人数非常多,服务器压力就会非常大的,不过现在动态程序都是使用了缓存技术。但是总体来讲,动态页面对于服务器的压力比较大一点。同时动态页面的网站一般对服务器高求要比较高一些,同时访问的人越多也会造成服务器压力越大。

    对于SEO优化:很多个人网站以及企业网站都很看不起动态页面,说是搜索引擎不会收录动态页面网站,这是不科学的,说不定别人的动态页面网站比你的静态页面收录更多呢。当然前提条件就是,动态URL最好不要带太多的复杂参数,如:符号等等。搜索引擎对于动态页面的收录方式是一样的,而区别最大的地方,其实就是速度上面的差别,这一点差别是非常微弱的,而大型网站多数是使用静态页面,这是因为对服务器压力比较小。

    静态URL

    静态页面的特征

    1、静态页面的URL链接是以.html、htm、.shtml、.xml为链接后缀;

    2、静态页面是存在于服务器上的一个文件,每个网页都是一个独立的文件;

    3、客户端加载静态页面时,并没有操作数据库,只是直接提取一个文件。

    静态页面优缺点

    优点:相比其他两种页面,速度最快。加载速度快,不需要从数据库里面提取数据,不会对服务器产生压力。

    缺点:由于数据都是储存在HTML里面,所以导致文件非常大。并且最严重的问题是,更改源代码必须全部更改,而不能改一个地方,全站静态页面就自动更改了。如果是大型网站有比较多的数据,那会占用大量的服务器空间,每次添加内容都会生存新的HTML页面。如果不是专业人士维护比较麻烦。

    对于SEO优化:静态页面对于搜索引擎是非常友好的。

    伪静态URL

    伪静态页面优缺点

    优点:大家都知道静态页面对SEO有很大益处,对服务器的负载很小,但静态页面的缺点是不能随时更新。对于伪静态的优点,这个并不好讲,伪相比动态网页而言,并没有提到速度上面的提升,相比较而言,因为是“假”静态页面,其实还是一个动态页面,也是同样需要翻译为静态页面的。最大的好处就是让搜索引擎把自己的网页当做静态页面来处理。

    缺点:从名称上面就能够看出来缺点,“伪静态”其实就是“假静态”,搜索引擎会不会把他当做是静态页面来处理,这只是我们靠经验靠逻辑去分析的,并不一定准确。或许搜索引擎直接把他认为是动态页面,我们做那么多努力,其实什么也没有换来。

    总结

    静态url: 不方便管理,修改麻烦, seo优化相当好.
    动态url : 方便管理,修改简单, seo没优势.
    伪静态: 结合两者的优势. 方便管理, seo有优势.

    插入几张图片: 
     静态URL

    动态URL

    伪静态URL

     

     

    展开全文
  • 一、基本概念1.1什么是库在windows平台linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制... 1.2库的种类linux下的库有两种:静态共享库(动态库)。二者的不同点在于代码被载入的时刻不同。静
  • 动态库与静态库 库的链接方式:gcc / g++编译器默认的链接方式是动态链接 动态链接:链接动态库生成可执行程序,并没有把库中函数的实现指令直接拿过来写入可执行程序中,而是在可执行程序中记录了库中函数的符号...
  • 通常我们所说的动态语言、静态语言指 动态类型语言(Dynamically Typed Language) 静态类型语言Statically Typed Language)。 还有一个 Dynamic Programming Language (动态编程语言),静态编程语言。 ...
  • Java的动态绑定和静态绑定

    千次阅读 多人点赞 2017-09-14 17:05:16
    对Java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定后期绑定。静态绑定在程序执行前方法已经被绑定,此时由编译器或其它连接程序实现。例如:C。针对Java,可以简单地理解为程序编译期的绑定。这里特别...
  • 信息技术从来没有像今天这样飞速发展着,变换更新的...--------------------------------------------1、动态语言和静态语言 通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。(1)动态类型语言:
  • 动态链接和静态链接的区别

    千次阅读 2018-12-16 21:16:44
    动态链接和静态链接的区别 动态链接和静态链接的区别 https://www.cnblogs.com/njczy2010/p/5793477.html 一、分别编译与链接(Linking) 大多数高级语言都支持分别编译,程序员可以显式地把程序划分为独立的...
  • linux动态编译和静态编译

    千次阅读 2017-11-27 19:50:22
    为了使用方便,可以把这两个函数接口定义为动态链接库或静态链接库。用动态链接库编译生成的 可执行文件需调用.so文件方可正常运行,灵活但稍显麻烦;用静态链接库编译生成的可执行文件可直 接运行,不用再调用...
  • JNI 静态注册和动态注册

    千次阅读 2018-07-13 15:18:07
    这就需要用到注册的概念了,通过注册,将指定的 native 方法 so 中对应的方法绑定起来(函数映射表),这样就能够找到相应的方法了。  注册分为 静态注册  动态注册 两种。默认的实现方式即静态注册。   ...
  • 动态代理和静态代理到底有什么区别,好处在哪里?
  • 本视频课程介绍C语言中动态和静态库的基本概念,制作使用方法,手工加载动态库方法,如何导出函数类,以及VC的静态编译等等
  • 静态库,动态库,静态链接和动态链接这几个概念理解起来很简单,本文主要是收集了网上的一些观点作了一个较全面的总结。 一、问题 1,静态库是什么? 2,动态库是什么? 3,两者的区别? 4,静态链接? 5...
  • 深度学习中常见的动态和静态

    千次阅读 2019-11-20 15:19:40
    在我们日常学习中总是听到动态和静态图的概念,今天就在这里做一个小总结,提醒自己. 目前神经网络框架分为静态图框架和动态图框架,PyTorch TensorFlow、Caffe 等框架最大的区别就是他们拥有不同的计算图表现...
  • 开心一笑【年底是各种案件的高发期,我们去ATM取钱的时候,一定要注意遮挡,不要被陌生人看到你的余额,要不然啊,就,,,非常容易被人嘲笑。... 】提出问题java中的动态编译和静态编译如何理解???解
  • 机器学习中常见的动态和静态

    万次阅读 2018-12-23 20:34:57
    在我们日常学习中总是听到动态和静态图的概念,今天就在这里做一个小总结,提醒自己.  目前神经网络框架分为静态图框架和动态图框架,PyTorch TensorFlow、Caffe 等框架最大的区别就是他们拥有不同的计算图表现...
  • 什么是库 在windows平台linux平台下都大量存在着库。...linux下的库有两种:静态共享库(动态库)。 二者的不同点在于代码被载入的时刻不同。 – 静态库的代码在编译过程中已经被载入可...
  • 动态存储和静态存储区域区别

    千次阅读 多人点赞 2017-11-27 19:19:23
    动态存储方式 所谓动态存储方式是指在程序运行期间根据需要进行动态的分配存储空间的方式。动态存储变量是在程序执行过程中,使用它时才分配存储单元, 使用完毕立即释放。 典型的例子是函数的形式参数,在函数...
  • 起因 理论功底 ...动态和静态库 ...静态和动态库如何构建加载 静态和动态库依赖关系 Xcode 项目结构 iOS 依赖管理事实上的标准 解决问题 制作动态
  • 动态语言和静态语言的区别

    万次阅读 多人点赞 2017-10-30 11:20:20
    编译型语言解释型语言 1、编译型语言 需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。 编译是把源代码编译成机器码, 链接是把...
  • 1、动态语言和静态语言通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。(1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也...
  • 1.公网ip私网ip 外网IP是全世界唯一的IP地址,仅分配给一个网络设备。公网IP地址全世界仅分配给一个网络设备(比如你在家拨号,分配给你一个IP地址吧,那个地址是唯一的,你用你机器做个网站,别人访问你的IP地址...
  • JVM之动态连接和静态连接

    千次阅读 2020-03-31 18:18:52
    JVM的虚拟机运行时数据区中,虚拟机栈的栈帧中含动态链接,什么是动态连接? 每一个栈帧都包含指向运行时常量池中该栈帧所属方法的引用,持有这个引用是为了支持方法调用过程中的动态连接。 在class文件格式的常量池...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 513,364
精华内容 205,345
关键字:

动态地址和静态地址的概念