分享
 
 
 

FastCPP -- C++ Web Development Environment

王朝c/c++·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

FastCPP -- C++ Web Development Environment

Powered By Apache2

Jsp,Asp,Asp.net,Php,Perl,Python,Ruby on Rails,FastCGI, and FastCPP.

FastCPP是一个甚于Apache(现在只支持Apache2)的C++ Web开发环境,利用FastCPP可以快速的开发出高性能的Web应用,提供了Cookie,session还有动态开发以及混嵌HTML的功能。

和其他Web开发语言的对比.

优势:

1).基于C++,拥有STL,Boost以及Loki等强大开发库的支持。

FastCPP并不是一个新的脚本语言,只是一个支持混嵌HTML的C++伪代码,通过FastCPP的翻译功能,将FastCPP的代码翻译成c++的

源文件,并调用g++编译成动态链接库。所以,你可以直接使用你熟悉的C++语法,使用强大的STL以及直接使用系统调用,拥有比任何一个WEB开发语言

更强大的程序库

.

2).可以提供高性能的WEB服务能力。

FastCPP是基于Apache2的Module开发的,由FastCPP的伪文件编译成的动态链接库直接由进程直接使用,在性能上和写module是

一样的。理论上性能会远在jsp,php,perl以及fastcgi之上,因为jsp,php,perl是脚本引擎来执行,而FastCGI是通过

FastCGID来维护cgi,将cgi的运行结果通过管道来传给

apache2,所以尽管FastCGI可以使用C语言来增加语言本身的性能,但通过管道的传输也会成为FastCGI的瓶颈之一.

FastCPP没有明显的性能瓶颈,因为FastCPP的最终的程序都是Apache2进程的一部分,不经过管道之类的传输数据,而是在进程内直接传递,所以比FastCGI有更多的优势。

3).快速的开发过程。

只要配置好Apache2,写好FastCPP的伪代码放在web目录下就可以直接访问,并得到结果,FastCPP第一次访问时需要编译,所以在速度上会很明显的慢,在第二次访问之后就不需要编译,已经和Apache2的主进程结合成一个进程。

FastCPP支持HTML混嵌,可以像编辑HTML一样的编辑FastCPP的页面。而且提供了编译参数的设定,完成可以按照MVC的理念来开发程序,

4).完整的功能支持.

FastCPP支持cookie和session这两个强大的功能,你可以把你需要的变量存在session里,在两个不同的页面中共享。

缺点:

1).不支持其他的开发语言,只支持C++语言,默认的编译器是g++. ^^

2).受到进程概念的影响。只支持Apache2的Single-Process Multi-Thread的Worker的单进程多线程的工作方式。

因为FastCPP依赖的两个全局变量,pages 和

sessions分别是fastcpp的页面缓存和session管理器,如果使用

Multi-Process的话,一但Apache2根据负载情况fork出新的进程,两个进程间的pages和sessions就是两个不同的单元,对

sessions的唯一性的破坏是可想而知的,所以就只能选择Single-Process,不过很幸运的是,Worker是apache2推荐的高性能

的MPM。

或许FastCPP在将来会提供一个功能更强,性能也比较优秀的MPM。

3).暂时不支持FastCPP的集群,不过在以后的开发中,会加入这个功能。

4).暂时不支持apache1.x,会支持的

5).暂时不支持除Linux之外的操作系统,也会支持的。

6).现在FastCPP和Apache2是绑定在同一个进程的,所以如果page的内存访问错误会直接导致Apache2的崩溃,

这是挺严重的,风险也很大.所以在选择FastCPP,你要自己小心。不过,充分利用C++语言的强大功能,我想很容易避免这些问题的。

如何获得和安装FastCPP?

FastCPP在将来是支持跨平台的,只不过只支持Linux,所以现在,你只能用Linux来使用FastCPP.

1.获得源码.

FastCPP是遵守GPL的要求而发布的代码。

apache2.你需要一份apache2的源码,你可以在httpd.apache.org中下载,我使用的httpd-2.0.54

fastcpp.在http://dragon.linux-vs.org/~jinti/fastcpp-0.0.1.tar.gz 中获得。

2.安装

1).apache2的安装

jinti@heaven:~$tar jxf httpd-2.0.54.tar.bz2

jinti@heaven:~$cd httpd-2.0.54

jinti@heaven:~/httpd-2.0.54$ ./configure --with-mpm=worker

jinti@heaven:~/httpd-2.0.54$ make && make install

2).fastcpp的安装

jinti@heaven:~$tar jxf fastcpp-0.0.1.tar.gz

jinti@heaven:~$cd fastcpp-0.0.1

jinti@heaven:~/fastcpp-0.0.1$./configure && make && make install

fastcpp安装之后你需要在httpd.conf加上

LoadModule fastcpp_module modules/mod_fastcpp.so

AddHandler fastcpp-script .fc

这样,就可以调用扩展名为.fc的fastcpp脚本了.

3.运行

首先你要运行apache2.

./apachectl -DONE_PROCESS -k start

#一定要加上-DONE_PROCESS 否则有可能会产生两个sessionmaps影像,这是错误的。

在apache2/htdocs 下建一个hello.fc

jinti@heaven:~$ cat apache2/htdocs/hello.fc

<%@inc "-I/usr/include/"%>

<%@link "-L/usr/lib/" %>

<%@comp "-O2" %>

<%!

#include <iostream>

using namespace std;

static int i = 0;

%>

<html>

<head>

<title>Thank you for choicing FastCPP</title>

</head>

<body>

<%

page<<"<B>Hello,FastCPP "<<i++<<"<BR></B>"<<endl;

%>

</body>

</html>

打开你的浏览器访问http://127.0.0.1/hello.fc就可以看到运行结果了.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有