大连249建站之家免费精品网站自助建设系统平台免费微
技术干货
  • 249建站:php7扩展使用持久化hash

    最近项目需要在PHP7的扩展里,维护一个全局的持久化zend_array,在多次请求之间可以共享使用。在这里简单记录一下实现和原理。首先是定义一个全局的 zend_array*:zend_array *ormosia_domain_cache = NULL; 在扩展初始化回调里,分配并初始化一个 zend_array:ormosia_domain_cache = (zend_array*)pemalloc(sizeof(*ormosia_domain_cache), 1);zend_hash_init(ormosia_domain_cache, 0, NULL, persistant_zval_dtor, 1);首先 zend_array自身的内存一定是 pemalloc(size, persistant=1)来创建的持久化内存,相当于malloc而不是emalloc,不

  • 249建站:Just for fun——Docker做个NMP环境

    Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。现在windows上也是可以用docker了。总之,Docker可以屏蔽宿主机操作系统差异,让你可以快速搭建系统环境。Image和Container Docker的Image(镜像)可以来生成多个容器。镜像可以看出是一个模板,而容器就是真正的物品。Docker Compose Docker Compose是一个用来定义和运行复杂应用的Docker工具。使用Compose,你可以在一个文件

  • 249建站之家:在 Node 的帮助下,横跨多平台的 JavaScript 已经赢了

    在编程的世界里,有一场旷日持久的战争。自从计算机问世以来,科学家们一直在寻找一种完美的编程语言。一个接一个的新语言被创造出来,以适应某种目的。随着新语言的出现,也会出现新的技术时代,新的技术社区,和大量的开源贡献。当然还会有不可避免的新的限制。自从在Java应用程序和Flash(我曾经是Flash开发者)在互联网上长期占据主导地位以来,我们已经看到有各种各样的语言的涌现,各种各样的语言毫无理由的消失,因为它们已经毫无用武之地。世界正在朝着不同的方向前进……那些曾经耀眼的新语言现在已经过时了,开发者越来越少,而

  • 249建站:PHP7中我们应该学习会用的新特性

    PHP7于2015年11月正式发布,本次更新可谓是PHP的重要里程碑,它将带来显著的性能改进和新特性,并对之前版本的一些特性进行改进。本文小编将和大家一起来了解探讨PHP7中的新特性。1. 标量类型声明我们知道PHP是一种弱类型的编程语言,因此没有提供任何方法来指定输入参数和返回值的类型,PHP7突破了这种现状,增加了对标量类型(int,float,string,bool)的声明支持,增加 declare(strict_types=1)指令声明是否严格类型校验,我们来看一段代码:(strict_types=) { $x + $y;} add(, );有效的类型有: class/interface name, self, array, ca

  • 249建站之家:理解 JavaScript 作用域

    JavaScript 有个特性称为作用域。尽管对于很多开发新手来说,作用域的概念不容易理解,我会尽可能地从最简单的角度向你解释它们。理解作用域能让你编写更优雅、错误更少的代码,并能帮助你实现强大的设计模式。什么是作用域?作用域是你的代码在运行时,各个变量、函数和对象的可访问性。换句话说,作用域决定了你的代码里的变量和其他资源在各个区域中的可见性。为什么需要作用域?最小访问原则那么,限制变量的可见性,不允许你代码中所有的东西在任意地方都可用的好处是什么?其中一个优势,是作用域为你的代码提供了一个安全层级。计算

  • 249建站之家:PHP中类静态调用和范围解析操作符的区别

    ?php//在子类或类内部用“::”调用本类或父类时,不是静态调用方法,而是范围解析操作符。class ParentClass { public static $my_static = 'parent var '; function test() { self::who(); // 输出 'parent' 是范围解析,不是静态调用 $this-who(); // 输出 'child' static::who(); // 延迟静态绑定 是范围解析,不是静态调用 } function who() { echo 'parentbr'; }}class ChildClass extends ParentClass { public static $my_static = 'child var '; function who() {

  • 249建站之家:关于 logging 的一些琐事

    虽说 logging 模块都用了好久了,不过由于文档不够详细,每次都忍不住去搜索别人的文章,于是就干脆记录下来吧。懒得分段了,想到哪写到哪吧。1.为什么 logging.info() 默认不输出任何东西?因为默认生成的 root logger 的 level 是 logging.WARNING,低于该级别的就不输出了。可以进行如下设置来输出: import logging logging.info('test') root_logger = logging.getLogger() # 或使用未公开的 logging.root root_logger.level30 logging.getLevelName(30)'WARNING' root_logger.level = logging.NOTSET logging.info(

  • 249建站之家:PHP持续部署|使用 deployer 部署项目

    我一直都认为部署是持续集成或者 DevOps 中最重要的一个环节。受限于公司的网络环境,一直在这一块儿能做的事情很少。最近用腾讯云的机器做一些事情,才有机会好好研究一下 deployer 这个工具。简介 deployer 主要的功能是创建一系列的工作流来执行部署任务。通过 task 函数定义一系列的操作,然后按照顺序执行,完成代码部署前后的工作。你可以自己定义任务,也可以直接使用 deployer 提供的一些已经写好的方法,deployer 称这些封装为 recipe。举个例子 task 定义的例子:task('deploy', [ 'deploy:prepare', 'de

  • 249建站之家:基于 Redis 的 Pub/Sub 实现 Websocket 推送

    微信小程序的生态越来越完善,而在技术上,小程序目前只支持两种通信协议:HTTPS 和 WebSocket,所以在需要使用双工通信的时候,除了 WebSocket 也没有别的选择。最近恰好有个这样的需求,所以我也花了点时间研究了一下。项目上实现的目标就是小程序和服务器建立 WebSocket 建立连接,在服务端收到来自于第三方的事件推送之后,主动推送给客户端而不是靠客户端轮询来获取消息(这里就不介绍 WebSocket 的基础知识了)。因为我们项目组成员大多都是 PHP 开发,所以也是考虑用 PHP 来实现。实现这里会遇到的问题就是,用 PHP 的库来开一个 W

  • 249建站:PHP代码优化的几个小技巧

    除了要学习PHP的基本知识,比如《为开发者准备的9个实用PHP代码片段》《深入探讨PHP类的封装与继承》《PHP比较运算符的详细学习》,还要了解一些代码优化上的技巧,从而帮助我们写出更加优秀的程序。我们在编写程序时,总是想要使自己的程序占用资源最小,运行速度更快,代码量更少。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法,它可以比 CGI或者Perl更快速的执行动态网页。PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高得多。PHP优化的目的是花最少的代价换来最快的运行速度与最容易维护的代

  • 249建站之家:C#使用Http Post方式传递Json数据字符串调用Web Service

      前段时间一直在做一个ERP系统,随着系统功能的完善,客户端(CS模式)变得越来越臃肿。现在想将业务逻辑层以下部分和界面层分离,使用Web Service来做。由于C#中通过直接添加引用的方来调用Web Service的方式不够灵活,故采取手动发送Http请求的方式来调用Web Service。最后选择使用Post方式来调用Web Service,至于安全性和效率暂不考虑。在学习使用的过程,遇到了很多问题,也花了很长时间来解决,网上相关的帖子很少,如果各位在使用的过程中有一些问题难以解决,可以找我哦。前提  使用Post方式调用Web Service,需要在服务项目

  • 249建站之家:很全很全的 JavaScript 模块讲解

    模块通常是指编程语言所提供的代码组织机制,利用此机制可将程序拆解为独立且通用的代码单元。所谓模块化主要是解决代码分割、作用域隔离、模块之间的依赖管理以及发布到生产环境时的自动化打包与处理等多个方面。模块的优点可维护性。 因为模块是独立的,一个设计良好的模块会让外面的代码对自己的依赖越少越好,这样自己就可以独立去更新和改进。命名空间。 在 JavaScript 里面,如果一个变量在最顶级的函数之外声明,它就直接变成全局可用。因此,常常不小心出现命名冲突的情况。使用模块化开发来封装变量,可以避免污染全局环境。重用

  • 249建站之家:iOS百度地图反编码个人见解

    类似于微信中的发送位置,拖拽从新定位,以及反编码,列表附近的位置。思路就是将一个UIImageView固定在地图中间,每次更新位置,给UIImageView添加动画即可。代码如下:#import FTBasicController.htypedef void (^SelectBlock) (NSString *address,CLLocationCoordinate2D select);@interface FTUploadAddressController : FTBasicController@property(nonatomic, copy)SelectBlock selectBlock;@end#import FTUploadAddressController.h#import FTBMKPoiInfo.h#import FTPoiCell.h@interface FTUploadAddressController ()BMKMapViewDe

  • 249建站之家:基于 ThinkPHP 的后台管理框架 Tplay

    Tplay 是一款基于 ThinkPHP5.0.13 + layui2.2.45 + Mysql 开发的后台管理框架授权协议:Apache开发语言:PHP JavaScript HTML/CSS操作系统:跨平台软件作者:听雨ingTplay是一款基于ThinkPHP5.0.13 + layui2.2.45 + Mysql开发的后台管理框架,PHP版本要求提升到5.5,Tplay集成了一般应用所必须的功能模块,为开发者减少重复性的工作,提升开发速度,规范团队开发模式。Tplay的运行环境要求PHP = 5.5,其余要求参考thinkPHP5的配置要求。目录结构初始的目录结构如下:www WEB部署目录(或者子目录)├─app 应用目录│ ├─admin

  • 249建站之家:MySQL数据库性能优化之存储引擎选择

    MyISAM特性  不支持事务:MyISAM存储引擎不支持事务,所以对事务有要求的业务场景不能使用  表级锁定:其锁定机制是表级索引,这虽然可以让锁定的实现成本很小但是也同时大大降低了其并发性能  读写互相阻塞:不仅会在写入的时候阻塞读取,MyISAM还会在读取的时候阻塞写入,但读本身并不会阻塞另外的读  只会缓存索引:MyISAM可以通过key_buffer缓存以大大提高访问性能减少磁盘IO,但是这个缓存区只会缓存索引,而不会缓存数据2.适用场景  不需要事务支持(不支持)  并发相对较低(锁定机制问题)  数据修改相对较少(阻塞问题)

  • 249建站之家:9种高性能可用高并发的技术架构

    1、分层分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对简单并比较单一的职责,然后通过上层对下层的依赖和调度组成一个完整的系统。在网站的分层架构中,常见的为3层,即应用层、服务层、数据层。应用层具体负责业务和视图的展示;服务层为应用层提供服务支持;数据库提供数据存储访问服务,如数据库、缓存、文件、搜索引擎等。分层架构是逻辑上的,在物理部署上,三层架构可以部署在同一个物理机器上,但是随着网站业务的发展,必然需要对已经分层的模块分离部署,即三层结构分别部

  • 249建站:MySQL数据库性能优化之SQL优化

    1.减少 IO 次数  IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当然,也是收效最明显的优化手段。2.降低 CPU 计算  除了 IO 瓶颈之外,SQL优化中需要考虑的就是 CPU 运算量的优化了。order by, group by,distinct … 都是消耗 CPU 的大户(这些操作基本上都是 CPU 处理内存中的数据比较运算)。当我们的 IO 优化做到一定阶段之后,降低 CPU 计算也就成为了我们 SQL 优化的重要目标 改变 SQL 执行计划  明确了优化

  • 249建站之家:MySQL数据库性能优化之索引优化

     我们让一位不太懂计算机的朋友去图书馆确认一本叫做《MySQL性能调优与架构设计》的书是否在藏,这样对他说:“请帮我借一本计算机类的数据库书籍,是属于 MySQL 数据库范畴的,叫做《MySQL性能调优与架构设计》”。朋友会根据所属类别,前往存放“计算机”书籍区域的书架,然后再寻找“数据库”类存放位置,再找到一堆讲述“MySQL”的书籍,最后可能发现目标在藏(也可能已经借出不在书架上)。

  • 249建站之家:谈谈JSONAPI在PHP中的应用

    现在服务端程序员的主要工作已经不再是套模版,而是编写基于 JSON 的 API 接口。可惜大家编写接口的风格往往迥异,这就给系统集成带来了很多不必要的沟通成本,如果你有类似的困扰,那么不妨关注一下 JSONAPI,它是一个基于 JSON 构建 API 的规范标准,一个简单的 API 接口大致如下所示:简单说明一下:根节点中的 data 用来放置主对象的内容,其中 type 和 id 是必须要有的字段,用来表示主对象的类型和标识,其它简单的属性统统放置到 attributes 里,如果主对象存在一对一、一对多等关联对象,那么放置到 relationships 里,不过只是通

  • 249建站之家:MySQL 数据库性能优化之表结构优化

    由于MySQL数据库是基于行(Row)存储的数据库,而数据库操作 IO 的时候是以 page(block)的方式,也就是说,如果我们每条记录所占用的空间量减小,就会使每个page中可存放的数据行数增大,那么每次 IO 可访问的行数也就增多了。反过来说,处理相同行数的数据,需要访问的 page 就会减少,也就是 IO 操作次数降低,直接提升性能。此外,由于我们的内存是有限的,增加每个page中存放的数据行数,就等于增加每个内存块的缓存数据量,同时还会提升内存换中数据命中的几率,也就是缓存命中率。数据类型选择数据库操作中最为耗时的操作就是 IO 处理

联系我们
更多

联系电话:0411-66373325

联系地址:大连市沙河口区富民广场

公司邮箱:2058793689@qq.com

备案信息:Copyright © 2016-2025,www.my249.com,All rights reserved

辽ICP备17015910号-1

seo seo