因为项目需要, 智能家居一类的, 本来准备用C做, 想想swoole和workerman很火很成熟, 不少稳定应用场景了, 想想为什么不能用这俩试一下呢? 我C水平那么烂, 用PHP能满足需求多好?

所以今天大概了解了下swoole和workerman, 初步映象对swoole没有想象中那么好, 反而workerman让我非常惊艳...

先说swoole:

swoole, 官网顶部手册竟然打不开, 后来找半天找到一个手册. 你们这么多人为何不能把官网做的像样一点呢? 需要很多工作量吗? 至少把官网顶部那个手册改为正确地址好不好?

swoole我在freebsd下安装完毕, 例子程序start后出现如下错误:

[2017-09-17 19:53:51 @55879.0] ERROR swSocket_set_buffer_size(:387): setsockopt(4, SOL_SOCKET, SO_SNDBUF, 8388608) failed. Error: No buffer space available[55].

[2017-09-17 19:53:51 @55879.0] ERROR swSocket_set_buffer_size(:387): setsockopt(5, SOL_SOCKET, SO_SNDBUF, 8388608) failed. Error: No buffer space available[55].

[2017-09-17 19:53:51 @55879.0] ERROR swSocket_set_buffer_size(:387): setsockopt(6, SOL_SOCKET, SO_SNDBUF, 8388608) failed. Error: No buffer space available[55].

...

Swoole http server is started at http://127.0.0.1:9501

虽然不影响测试, 但找了一圈没找到啥解决办法. 发了issues, 论坛也发帖了, 没啥反应...

或许只需要修改个配置就能搞定, 但是我不知道去哪里找到这些资料.

再说workerman:

workerman例子很完善, 讲解详细, 比swoole好一些. 重要一点是用纯PHP就能实现如此之高性能, php-cli在php5.3时代就已经成熟了, 一直没时间在此基础做大型项目, 老是感觉性能不行, workerman却让我惊艳.

workerman用到的pcntl, posix两个扩展也是PHP自带的扩展, 默认会编译进去, streams系列函数是PHP自带函数, 更没有扩展之说. 所以韩老大说的太夸张了. 并不需要不成熟第三方扩展, 这两个扩展是非常成熟的扩展, 稳定到进入PHP默认开启的扩展, streams甚至进入PHP基本函数了. 如果为了像Nginx一样开启Kqueue和Epoll则需要安装和swoole一样的pecl扩展:pecl-event. 此扩展也非常稳定了. 这些都是基本扩展, 不会不稳定更不会PHP7不支持. streams, pcntl, posix, pecl-event其实对底层的浅封装, 性能没问题, 看你怎么用, 会不会用, workerman就用的很好.

最后说一下:

我不同意 @韩天峰 说的swoole需要比较高超水平, swoole给你封装好, 拿来用就行.workerman也是封装好, 拿来用就行. 但如果出现问题workerman需要比较高的水平去修改程序, 了解协议, 甚至修改封装的代码. swoole就没法修改了, 至少你要会C语言才能去修改, 这是很多phper不擅长的.

我觉得用workerman需要你php代码水平比较高, 用swoole反而没有那么多需要接触修改的东西. 至于使用上觉得swoole难, 那韩老大就要反省下了, 是不是workerman封装的比较友好? 使用上友好? 为啥workerman多做了一部分工作反而使用上更简单呢?

我暂时决定用workerman了, 因为出现上述那种问题我可以自己修改workerman的PHP代码解决, 而且streams, pcntl, posix, pecl-event都是非常稳定的函数和扩展, 稳定到进入PHP基本代码里, 所以肯定大部分情况不会出问题.

而swoole是用C重新实现的, 很多坑要去完善, 而社区也不活跃, 没人理睬, 而我没精力去查C代码找原因. 发现很多人也是试验了swoole后发现还是workerman稳定些, 所以改用workerman了. 其实我还是希望swoole能快速发展的完善些.

我希望有一天workerman无法满足我需求, swoole又非常完美了, 可能是明天, 可能是下个月, 可能是一年后, 到时候我很高兴转到swoole下. 因为接触swoole比较浅, 观点也比较浅层主观, 所以初次这个启动错误的映象让我临时弃用swoole, swoole很优秀, 但是希望未来瑕疵会少一些.

以上纯属个人观点, 一切都是为了PHP能健康快速发展下去, 希望swoole越来越好...

workerman mysql git_swoole和workerman哪个更易开发?相关推荐

  1. 更易用的OceanBase|生态工具征文大赛正式开启!

    OceanBase 一直在思考,什么样的数据库对用户而言更易用? 更易用,除了功能完善.性能优秀.运行稳定的数据库系统,丰富多样的生态工具也必不可少. 作为一款完全自主研发的原生分布式数据库,Ocea ...

  2. 魔众积分商城系统 v1.2.0 手机端适配增强,更易用的积分商场

    魔众积分商城系统提供积分商城,会员积分系统,积分兑换商城,积分系统,积分运营,营销活动工具,积分游戏.API接口对接会员积分系统,简单配置页面即可上线,助力企业会员运营管理. 魔众积分商城系统发布v1 ...

  3. TensorFlow AI 新品更易用!联手NVIDIA,支持Swift和JavaScript

     整理 | 费棋 出品 | AI科技大本营(公众号ID:rgznai100) 天体物理学家使用 TensorFlow 分析开普勒任务中的大量数据,以发现新的行星: 医学研究人员利用 TensorFl ...

  4. 让 Python 代码更易维护的七种武器——代码风格(pylint、Flake8、Isort、Autopep8、Yapf、Black)测试覆盖率(Coverage)CI(JK)...

    让 Python 代码更易维护的七种武器 2018/09/29 · 基础知识 · 武器 原文出处: Jeff Triplett   译文出处:linux中国-Hank Chow    检查你的代码的质 ...

  5. 为什么MySQL将会是一个更好的NoSQL

    转载自  为什么MySQL将会是一个更好的NoSQL 前言 MySQL是一个更好的NoSQL数据库.当考虑到NoSQL的使用案例,比如对Key/Value键值存储来讲,MySQL在性能.易用性和稳定性 ...

  6. 《自然》重磅新论文:女性更易患阿尔兹海默症,竟然是因为它!

    记不得刚说过的话,想不起刚做过的事,认不出陪伴身边的人--阿尔兹海默症作为全球最难治愈的疾病之一,有着"脑海中的橡皮擦"之称. 目前,全球至少有5000万的阿尔兹海默症患者.流行病 ...

  7. 永恒python配合什么主武器_让Python代码更易维护的七种武器

    检查你的代码的质量,通过这些外部库使其更易维护. 可读性很重要. 随着软件项目进入"维护模式",对可读性和编码标准的要求很容易落空(甚至从一开始就没有建立过那些标准).然而,在代码 ...

  8. 哪些NPM仓库更易遭供应链攻击?研究员给出了预测指标

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一,软件的安全 ...

  9. 纯前端控件集 WijmoJS 2018V2发布,提供可视化设计器,在React、Vue和Angular中的更易用...

    作为一款纯前端控件集,WijmoJS 秉承"快如闪电,触控优先"的设计理念,在提供优质服务和产品的同时,专注于企业应用开发,不断优化产品架构,与时俱进.除在全球率先支持 Angul ...

最新文章

  1. SAP PM设备主记录
  2. Java中常见的几种类型转换
  3. iOS开发能用mysql吗_iOS开发之数据库的简单使用
  4. Virtual Machine Manager 2008 2008 R2系列之安装部署
  5. 适合新手的python书籍推荐_推荐一本适合初学者全面自学python的书(附赠电子书)...
  6. asp.net core集成CKEditor实现图片上传功能
  7. python--字符/文本编码解码笔记
  8. 【转】dicom通讯的工作方式及dicom标准简介!!
  9. 排序算法之选择法排序(C/C++)
  10. boot sprint 项目结构_Spring Boot 项目结构
  11. 父类指针指向子类实例,用父类指针调用虚函数,调用的是子类的函数还是父类的函数...
  12. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_6_Stream流中的常用方法_count...
  13. Office 2007简体中文版售价抢先看
  14. js 获取 当前年月日以及农历日期和星期几
  15. VMware虚拟机net模式无法共享主机ip
  16. 宿命论,三年前的演讲稿!,怀念那些力不从心的光景。。
  17. 诺基亚牌WP7手机——蛮期待的
  18. c语言中的less函数,less的使用-基本语法-编译
  19. 手把手教你,如何用Python做副业月入10000+!
  20. python同步远程文件夹_python pyinotify 监控远程文件夹来实现即时全量同步

热门文章

  1. eigen 列拼接_R语言-强大的矩阵运算
  2. c语言学习-定义一个整型数组a[10],将数组a[10]中的10个元素按逆序重新存放
  3. python测量信号信噪比
  4. delphi 选择文件夹目录_系统小技巧:不装软件 批处理为文件夹加锁
  5. OpenShift 4 - 锁定被保护的 OpenShift 资源,禁止删除和修改操作
  6. OpenShift Security (1) - 红帽多集群安全管理 RHACS 的主要功能和技术架构
  7. 使用XLocalizer进行ASP.NET Core本地化
  8. MVC SignalR Hub实时聊天实时Web解决方案
  9. 关于.NET的单元测试
  10. centos普通用户修改文件权限_Linux CentOS更改文件的权限与用户及用户组管理命令...