好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

包含phpgcc4.8的词条

很多站长朋友们都不太清楚phpgcc4.8,今天小编就来给大家整理phpgcc4.8,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 gRPC入坑记 2、 如何在ubuntu14.04下配置PHP环境 3、 鸟哥:让php7达到最高性能的几个tips 4、 centos7升级gcc4.8.5到gcc8 5、 gcc的版本发布 6、 gcc3.3 和 gcc4.8有什么区别 gRPC入坑记

概要

由于gRPC主要是谷歌开发的,由于一些已知的原因,gRPC跑demo还是不那么顺利的。单独写这一篇,主要是gRPC安装过程中的坑太多了,记录下来让大家少走弯路。

主要的坑:

本文讲解gRPC demo的同时,会介绍如何解决这些坑。本文对应的Github地址: 。该仓库存储了demo示例,以及部分系统编译好的二进制包,大家觉得有些步骤里耗时实在太长了,可以直接clone该仓库,复制二进制包到对应目录(仅限测试开发,生产环境还是老老实实自己编译吧)。

升级GCC

gRPC命令行工具编译需要使用 GCC4.8及以上版本。CentOS6系列的内置版本是GCC4.7。

如果你的系统GCC版本>=4.8,可以忽略本节。如果仅使用golang、java,请忽略本节。

如果需要升级gcc至4.8或更高版本,建议直接采用安装SCL源之后安装devtoolset-6(devtoolset-6目前gcc版本为6.3),因为devtoolset-4及之前的版本都已经结束支持,只能通过其他方法安装。

升级到gcc 6.3:

需要注意的是scl命令启用只是 临时 的,退出shell或重启就会恢复原系统gcc版本。如果要长期使用gcc 6.3的话:

这样退出shell重新打开就是新版的gcc了。其它版本同理。

升级到gcc 7.3:

已经停止支持的devtoolset4(gcc 5.2)及之前版本的安装方法,可能比较慢,大家感兴趣的话可以尝试。

编译gRPC命令行工具

gRPC分C、JAVA、GO、NodeJS版本,C版本包括C++, Python, Ruby, Objective-C, PHP, C#,这些语言都是基于C版本开发的,共用代码库一个代码库。

如果使用C版本的gRPC,最终要从源码里编译出下列工具:

这些工具作为插件供proto编译器使用。需要先下载 grpc/grpc github上的源码。

这里有2个坑:

1、grpc/grpc仓库比较大,鉴于国内访问的网速,建议使用国内镜像。码云()提供了同步更新的镜像地址:

这样下载速度提高了不少。

2、git submodule update这个命令实际就是在下载.gitmodules文件里定义的第三方依赖项到third_party目录,这个依赖项有很多,大家可以打开.gitmodules文件查看下详情。依赖的仓库都在github上,下载没几个小时是下载不下来的,就等着慢慢下载吧。

回头想想,我们花费了很多时间,结果只是为了得到grpc的proto编译插件。

PHP相关支持

PHP暂时不支持作为grpc的服务端。作为客户端是可以的,需要机器安装:

其中protoc和protobuf c扩展已经在 Protobuf 小试牛刀 介绍过了,这里不再赘述。上一小节里如果安装成功,那么grpc_php_plugin也是有了的。下面介绍如何安装PHP版的gRPC库。

安装grpc c扩展:

要求:GCC编译器需要4.8及以上版本。可以使用pecl安装:

也可以指定版本:

或者下载源码()安装:

grpc/grpc代码库里也有PHP扩展的C源码,在grpc/src/php/ext/grpc目录,进去也可以直接编译。

编译完成后在php.ini里添加,使用php --ri grpc可以查看信息。

安装完C扩展后,还需要使用composer安装grpc的库:

gRPC示例

编写gRPC proto

一共定义了三个文件:

其中 User 作为 Model定义,Response 用于 RPC统一返回定义,GreeterService 则是服务接口定义。

限于篇幅,proto文件详见 仓库的proto目录。

GreeterService.proto文件内容如下:

这里面定义了一个service,相当于定义了一个服务接口,我们把方法名、参数定义好了,后面需要去实现它。由于gRPC不支持PHP作为服务端,这里我们使用Golang作为服务端。

首先需要使用proto工具编译出golang的代码:

执行成功,会在 Pb_Go目录里生成Go代码:

如果需要生成PHP客户端的代码,则需要使用grpc php的命令行工具grpc_php_plugin,前面小结如果执行成功,这个工具已经有了。然后:

最终生成的文件:

注意:编译那里如果我们不加--grpc_out=$out --plugin=protoc-gen-grpc=/usr/local/bin/grpc_php_plugin,生成的PHP类是没有GreeterClient的。这个文件是gRPC编译工具自动生成的,用于连接gRPC服务端。

go编写服务

我们用Golang写服务端。上面虽然生成了Golang的部分代码,但真正的服务还没有写呢。

main.go

首先我们新建个main.go,代码不多,我直接贴出来:

然后就可以编译了。

有个大坑:go build main.go的时候会先下载go.mod里定义的依赖(依赖比较多,详情查看:),其中下面这条非常慢,仓库太大了,虽然重定向到github:

为了快速下载,我在码云上做了镜像,地址:gitee.com/52fhy/google-api-go-client 。改了之后下载快多了。

编译成功后,生成了二进制文件main。我们可以直接运行:

go test

为了测试我们写的服务是否正常,可以写测试用例:

test_client.go

运行:

运行有点慢,感觉依赖的库多了。

php客户端

使用gRPC PHP客户端,确保你已经安装了:

示例:

client_test.php

运行后输出:

常见问题

1、CentOS6使用 go mod获取第三方依赖包unknown revision xxx错误

解决:其实go mod调用链中会用到一些git指令,当git版本比较旧时,调用失败产生错误,并给出歧义的提示信息。方法就是升级git版本,CentOS6自带的git是1.7版本。升级完毕后,再尝试go mod。

快速升级方法:

centos6:

2、PHP报错:Fatal error: Class 'Google\Protobuf\Internal\Message' not found

解决:请安装PHP的protobuf c扩展。

3、PHP报错:Fatal error: Class '\Grpc\BaseStub' not found

解决:使用composer require grpc/grpc安装grpc。另外对应的grpc C扩展也要安装。

4、下载 github release包很慢怎么办?

解决:下载Mac版 Free Download Manager 下载工具可以解决Github 下载缓慢或失败问题。速度嗖嗖的。

参考

1、为CentOS 6、7升级gcc至4.8、4.9、5.2、6.3、7.3等高版本

2、centos 6.x/7.x使用yum升级git版本 - 夜空

3、Protobuf 小试牛刀 - 飞鸿影

(本文完)

如何在ubuntu14.04下配置PHP环境

1、下载64位安卓adt集成开发环境,(根据自己的系统版本选择)百度搜索android进入官网下载adt工具。

2、解压到/usr/share/目录下

右键--提取到此--会得到解压后的adt-bundle-linux-x86_64-20140321文件夹

$ cd 下载目录

$sudo cp -R adt-bundle-linux-x86_64-20140321 /usr/share

3、修改adt目录文件权限

$cd /usr/share

$sudo chmod -R 777 adt-bundle-linux-x86_64-20140321

4、安装openjdk-7-jdk

$sudo apt-get install openjdk-7-jdk

5、安装配置环境所需依赖包(或者安装wps通过sudo apt-get install -f修复依赖间接配置环境)

$sudo apt-get install 一点一点安装吧或者安装wps间接配置环境

gcc-4.8-base:i386 gcc-4.9-base:i386 libavahi-client3:i386

libavahi-common-data:i386 libavahi-common3:i386 libc6:i386

libcgmanager0:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386

libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libdrm2:i386

libelf1:i386 libexpat1:i386 libffi6:i386 libfontconfig1:i386

libfreetype6:i386 libgcc1:i386 libgcrypt11:i386 libgl1-mesa-dri:i386

libgl1-mesa-glx:i386 libglapi-mesa:i386 libglib2.0-0:i386 libglu1-mesa:i386

libgnutls26:i386 libgpg-error0:i386 libgssapi-krb5-2:i386 libice6:i386

libk5crypto3:i386 libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386

libllvm3.4:i386 libnih-dbus1:i386 libnih1:i386 libp11-kit0:i386

libpciaccess0:i386 libpcre3:i386 libpng12-0:i386 libselinux1:i386

libsm6:i386 libstdc++6:i386 libtasn1-6:i386 libtinfo5:i386

libtxc-dxtn-s2tc0:i386 libudev1:i386 libuuid1:i386 libx11-6:i386

libx11-xcb1:i386 libxau6:i386 libxcb-dri2-0:i386 libxcb-dri3-0:i386

libxcb-glx0:i386 libxcb-present0:i386 libxcb-sync1:i386 libxcb1:i386

libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386

libxrender1:i386 libxshmfence1:i386 libxxf86vm1:i386 zlib1g:i386

6、再次创建模拟器启动试试可以了。

1)、双击/usr/share/adt-bundle-linux-x86_64-20140321/ eclipse/eclipse 打开adt

2)、 工具栏 window--Android Virtual Device Manager--New 根据你的需要填写 模拟器配置然后确定就会创建一个新的安卓模拟器。

3)、点击需要的安卓模拟器 start--launch 启动模拟器。

注:如果还是遇到找不到adb这些提示 进入/usr/share/adt-bundle-linux-x86_64-2014

鸟哥:让php7达到最高性能的几个tips

1. Opcache

记得启用Zend Opcache, 因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快, 所以之前测试时期就发生了有人一直没有启用Opcache的事情. 启用Opcache非常简单, 在php.ini配置文件中加入:

zend_extension=opcache.so

opcache.enable=1

opcache.enable_cli=1"

2. 使用新的编译器

使用新一点的编译器, 推荐GCC 4.8以上, 因为只有GCC 4.8以上PHP才会开启Global Register for opline and execute_data支持, 这个会带来5%左右的性能提升(Wordpres的QPS角度衡量)

其实GCC 4.8以前的版本也支持, 但是我们发现它支持的有Bug, 所以必须是4.8以上的版本才会开启这个特性.

3. HugePage

前面文章介绍过

4. Opcache file cache

开启Opcache File Cache(实验性), 通过开启这个, 我们可以让Opcache把opcode缓存缓存到外部文件中, 对于一些脚本, 会有很明显的性能提升.

在php.ini中加入:

opcache.file_cache=/tmp

这样PHP就会在/tmp目录下Cache一些Opcode的二进制导出文件, 可以跨PHP生命周期存在.

5. PGO

如果你的PHP是专门为一个项目服务, 比如只是为你的Wordpress, 或者drupal, 或者其他什么, 那么你就可以尝试通过PGO, 来提升PHP, 专门为你的这个项目提高性能.

具体的, 以wordpress 4.1为优化场景.. 首先在编译PHP的时候首先:

$ make prof-gen

然后用你的项目训练PHP, 比如对于Wordpress:

$ sapi/cgi/php-cgi -T 100 /home/zk/local/www/htdocs/ wordpress/index.php >/dev/null

也就是让php-cgi跑100遍wordpress的首页, 从而生成一些在这个过程中的profile信息.

最后:

$ make prof-clean$ make prof-use make install

这个时候你编译得到的PHP7就是为你的项目量身打造的最高性能的编译版本.

centos7升级gcc4.8.5到gcc8

sudo yum install centos-release-scl

注意事项,如果想安装7.版本的,就改成devtoolset-7-gcc,以此类推

sudo yum install devtoolset-8-gcc*

可以一次安装多个版本的devtoolset,

需要的时候用下面这条命令切换到对应的版本

scl enable devtoolset-8 bash

大功告成,查看一下gcc版本

gcc -v

显示为 gcc version 8.3.1 20190311 (Red Hat 8.3.1-3) (GCC)

注意事项:gcc如果没有切换只对本次会话有效

1.切换gcc版本

补充: 这条激活命令只对本次会话有效,重启会话后还是会变回原来的4.8.5版本,要想随意切换可按如下操作。

首先,安装的devtoolset是在 /opt/rh 目录下的,如图

每个版本的目录下面都有个 enable 文件,如果需要启用某个版本,只需要执行

source ./enable

所以要想切换到某个版本,只需要执行

source /opt/rh/devtoolset-8/enable

旧的gcc是运行的 /usr/bin/gcc,所以将该目录下的gcc/g++替换为刚安装的新版本gcc软连接,免得每次enable

gcc的版本发布

2012年03月23日,GCC 首个公开发布版本是在 1987 年由 Richard Stallman 发布的,到今天已经整整 25 年了。为了庆祝 25 周年,GCC 也相应发布了 GCC 4.7.0 版本,这是 GCC 一个全新的重要版本。

GCC 4.7.0 带来了一组关于链接时优化 (LTO) 框架可提升伸缩性和降低内存使用,据开发者称,在 64 位系统上需要 8G 内存来对 Firefox 进行优化,然而用了 LTO 后只需 3G。

此外就是体验的支持软件事务内存,支持更多 C++11 标准,包括原子性、C++11 内存模型,用户定义文字、别名声明、构造器委派和可扩展的语法等。

GCC 4.7.0 还改进对 Fortran 的支持,支持 Google Go 1 等等多项改进。

2012年06月14日,GCC 4.7.1 发布了,这是一个 bug 修复版本,主要是 4.7.0 中的一些回归测试发现的问题修复。

2013年04月11日,GCC 4.7.3 发布。

2013年03月22日,GCC 4.8.0发布,进一步加强了对已C++11的支持。并且G++开始支持-std=c++1y选项,用来支持计划于2014年发布的C++11修订版标准(C++14)。

2013年10月16日,GCC 4.8.2发布。提供了对于OpenMP 4.0的支持。

2014年04月22日,GCC发布了4.9.0版本,提供了对C11标准的Generic Selection语法特性(_Generic)的支持以及对多线程方面特性的支持。

gcc3.3 和 gcc4.8有什么区别

一般是增加支持了某些CPU构架,不再支持某些老构架;gcc4.6以前的编译器是用C语言写的,以后是用C++写的。生成的程序速度上快得多了,优化更好,我最记得在看4.7时发布注意事项上,64firefox用4.7编译出来,内存占用好像是少了3倍多,等等,自己去官网看看release note,不过从gcc3.3到gcc4.8的release note够你看的……

关于phpgcc4.8的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于包含phpgcc4.8的词条的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did207866
更新时间:2023-05-03   阅读:15次

上一篇: phpcer生成证书 php配置ssl证书

下一篇:关于phpstatup的信息

相关资讯

最新资料更新

  • 1.php声明字符串 在php中声明变量应使用什么符号
  • 2.php订单管理功能 php订单提醒功能
  • 3.php链接数据库创建表格 php连接数据库的方法
  • 4.20个php函数 php的system函数
  • 5.macphp执行权限 macbookpro权限
  • 6.php开启sslopen php开启gd库
  • 7.phphuoqv多选 php选择语句
  • 8.php表示数组元素 php数组实现
  • 9.免费版仓库管理系统php 仓库管理系统php源码
  • 10.字符串对齐方法php php字符串赋值
  • 11.php加密数据用js解密 php加密 js解密
  • 12.nginx分离部署php nginx分发请求
  • 13.php会员登录与注册 php 用户登录
  • 14.php文字合到图片 php 图片合成
  • 15.php防止ajax接口 php防止接口多次请求
  • 16.数组对象转为数组php 对象数组转string
  • 17.php类属性分类 php数据类型
  • 18.搭建分站源码php 建立分站怎么建
  • 19.phpflv播放器 php视频播放
  • 20.口袋源码php下载 口袋com

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]