首页 文章 精选 留言 我的

精选列表

搜索[图形后端],共10000篇文章
优秀的个人博客,低调大师

地球上最大的PHP站点 后端技术解密

Facebook的扩展性挑战 在我们讨论细节之前,这里有一些Facebook已经做的软件规模: ◆Facebook有570000000000每月页面浏览量 (据Google Ad Planner) ◆Facebook的照片量比其他所有图片网站加起来还多(包括Flickr等网站) ◆每个月超过30亿张照片被上传 ◆Facebook的系统服务每秒处理120万张照片,这不包括CDN服务中处理的照片 ◆每月超过25亿条的内容 (状态更新,评论等)被共享 ◆Facebook有超过30,000服务器(这个数字是去年的) Facebook扩展所依赖的软件 Facebook是在某些程度上说仍然是LAMP的站点,但它比普通的LAMP大得多,以纳入其他元素和很多服务,并修改现行的做法。 例如: ◆Facebook仍使用PHP,但它已经为它建立一个编译器,以便它可以分为本地代码打开了Web服务器,从而提高性能。 ◆Facebook使用Linux,但他特别为网络吞吐量做了优化。 ◆Facebook使用MySQL,但主要是作为一个Key-value的持久性存储,Jions和服务器逻辑操作在Web服务器上操作。因为在那里更容易执行。 还有是自编写的系统,如Haystack,一个高度可扩展的对象存储,用来存储Facebook的照片。还有Scribe,一个日志系统,可以运行在Facebook的巨大规模上的日志系统。 现在我们介绍一下全球最大的社会网络网站的所使用的软件吧。 Memcached memcached的是现在互联网最有名的软件之一了。 这是一个分布式内存缓存系统,用来作为Web服务器和MySQL服务器之间的缓存层(因为数据库访问比较慢)。 多年以来,Facebook已经提出了一些优化Memcached和一些周边软件的办法。如压缩network stack。 Facebook的每时每刻都有数10TB的数据缓存在Memcached的数千台服务器上。 它可能是世界上最大的Memcached的集群了。 HipHop for PHP PHP作为一种脚本语言,和本地程序相比是运行缓慢的。 HipHop可以将PHP转换成C + +代码,然后再进行编译,可以获得更好的性能。 因为Facebook严重依赖PHP,这使得其可以让Web服务器运行的更有效率。 一个工程师小团队在Facebook(一开始只有三人)花了18个月时间开发HipHop,现在已经是可用状态。 Haystack Haystack是Facebook的高性能照片存储/检索系统(严格来说,是一个对象存储,因此它并不一定要存储照片)。 它有许多工作要做;有超过20亿张上传的照片,并且每一个被保存在四个不同的分辨率,因此有超过800亿张照片。 它不仅是对能够处理的上亿的照片,运行表现也是至关重要的。 正如我们前面提到的,Facebook的服务约120万张照片每秒 ,这个数字不包括CDN上的。 这是一个惊人的数字。 BigPipe BigPipe是Facebook开发的一个动态的网页服务系统。 Facebook使用它来按section(称为“pagelets”)处理每个网页,以获取最佳性能。 例如,在聊天窗口是分开的,新闻Feed也是分开的,等等。 这些pagelets可以在一个页面表现的时候同时使用,这是该页面表现的时候获取进来的。即使某些工程的一部分关闭或中端,用户也可以获得一部分网页。 Cassandra Cassandra是一个不会单点失败的分布式存储系统。 这是为NoSQL运动的一个重要组成部分,并已公开的源代码(它甚至成为一个Apache项目)。Facebook在搜索功能中使用它。 除了Facebook,还有一些人也用它,例如Digg的。 不过最近Twitter放弃了Cassandra。 Scribe Scribe是一个灵活的日志系统,Facebook在他的内部大量使用。 它的能够处理在Facebook的大规模日志记录,并自动处理新的日志记录类别,Facebook有数百个日志类别(categories)。 Hadoop and Hive Hadoop的是一个开源的map-reduce实现,使得它可以在进行大数据上进行运算。 Facebook的使用这个进行数据分析(而我们都知道,Facebook已经大量的数据)。 Hive就是发源于Facebook,使得对于Hadoop使用的SQL查询成为可能,从而是其更容易对非程序员使用。 Hadoop和Hive是开源的(Apache项目),有为数众多的追随者,例如雅虎和Twitter。 Thrift Facebook使用的几种不同的语言和不同的services。 PHP是最终用于前端,Erlang是用于聊天,Java和C ++也使用于多种场所,也许还有其他语言。Thrift是一个内部开发的跨语言的框架,联系语言,使他们可以在一起合作,从而使他们之间可以交互。 这使得Facebook可以更容易为继续保持其跨语言的发展。 Facebook已经让Thrift开源。更多的语言支持已被添加到Thrift。 Varnish Varnish是一个HTTP加速器,可以作为一个负载平衡器,并缓存的内容,然后可以以闪电般的速度送达。 Facebook使用的arnish来处理照片和个人资料图片,处理每天数十亿的要求。 和其他的东西一样,Varnish是开源的。 保持Facebook 顺畅运行的其他东西 我们已经提到的软件,组成了Facebook的系统,并帮助运行在大规模上。 但是,处理这么大的系统是一个复杂的任务,因此我们将列出一些其他的东西,他们保持了Facebook的平稳运行。 渐进发布和暗启动 Facebook有一个他们所谓的守门人制度(Gatekeeper),允许他们可以给不同的用户运行两套不同的系统。 这让Facebook渐进的发布新的功能,A / B测试,只为Facebook雇员发布等的某些特性。 Gatekeeper也可以让Facebook实现“暗启动”,这是在用户使用一些功能之前,就激活某些功能(因为用户没有察觉,所以称之为暗启动)。 这将作为一个现实世界的压力测试,在正式启动前,帮助揭露一些功能障碍和其他问题。 暗启动通常是在正式启动前两个星期。 Profiling的直播系统 Facebook的仔细监控其系统,有趣的是它也负责监察每一个PHP函数在生产环境的性能。 检测各个PHP的环境的配置运行情况。使用开源工具,XHProf 。 渐进的利用关闭功能来提升性能 如果Facebook运行时出现性能问题,有一个办法,就是逐步禁用不太重要的功能,以增强Facebook的大量核心功能表现。 我们没有提及的事情 我们没有提到硬件相关的事情,但这也是提高可伸缩性的重要一环。例如,就像其他大型站点,Facebook利用CDN来处理静态内容。Facebook还有一个the huge data center,可以帮助他扩展更多的服务。 Facebook的开源情节 不仅是Facebook使用(和帮助),如Linux,Memcached的,MySQL和Hadoop的开源软件,以及许多其他情况下,也贡献许多了其内部开发的软件。 Facebook亦开源了Tornado,一个高性能的网络服务器框架,由FriendFeed团队开发。关于开放源码软件清单,可以在Facebook’s Open Source page.找到。

优秀的个人博客,低调大师

开源图形编辑器 GIMP 将改名为 LIGMA

来自 MNNH News English 的报道称,自由软件基金会宣布,GIMP ("GNU Image Manipulation Program") 不会再使用这个具有争议性的名称,将于明年初更名为 LIGMA ("Libre Image and Graphics Manipulation Application")。 ※ gimp 在英文中有残疾人、瘸子的含义。 GIMP 即 GNU Image Manipulation Program(GNU 图像处理程序)的首字母组成,是一个自由开源的位图图像编辑器,用于图像照片润饰及编辑、自由绘图、调整大小、裁剪、照片蒙太奇、装换图像格式以及其他专业任务。GIMP 几乎拥有所有图象处理所需的功能,号称 Linux 下的 Photoshop。 可以看到,改名后的 GIMP 不再在全称中保留「GNU」,而是采用了更能清晰体现“自由软件”属性的「Libre」。指向对象也从原来的「Image」修改为「Image and Graphics」,Program 则改成了 Application。 关于 Free 和 Libre 的解读,查看 RMS 的阐述。

优秀的个人博客,低调大师

coloz-B4A —— Arduino 图形化编程软件

B4A 是为Arduino开发的Blockly编程工具 官网 B4A 库创建器 开发板/类库/示例资源 开发 关键技术 Blockly 8 Angular 13 Electron 18 安装依赖 angular和electron node两部分都需要安装依赖 npm i cd app npm i 运行 npm start 编译 npm run electron:build 资源路径设计 库资源 库我分成了两部分,core里存放一些最基础的公共库,libraries里存放涉及硬件差异的。对最终用户来说,只建议他们操作libraries里的。 核心库路径 /src/core/ 库路径 /src/libraries/ 开发板资源 开发板路径 /src/boards/ 编译上传工具 目前软件只是针对arduino,仅使用到arduino cli Arduino-Cli路径 /arduino/ 特别鸣谢 angular-electron 本项目使用angular-electron作为模板构建 ardublockly 本人通过ardublockly源码学习了blockly如何进行Arduino适配

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册