由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - C++11使用感受及一些问题
相关主题
ASIO TCP传送JSON如何知道包结束?发现ramdisk不错,多个进程通信用文件就可以了,简单
JSONCPP和ASIO能否联合使用(C++11)?有专门讲 message server performance 的资料吗
boost vs C++11选择 WCF 还是 ASP.NET WebApi
akka能和C++程序通信吗?用ASIO写TCP/IP,同步还是异步 ?
请推荐C++开发环境普通TCP还是HTTP?
C++两个问题in C++ how to write file in gzip format directly?
ASIO异步一问向硬盘上写大文件的方法
release模式可以,debug模式出错是怎么回事?perl, Java, C/C++ 在数据处理和分析中的比较
相关话题的讨论汇总
话题: c++话题: sdk话题: 嵌入式话题: java话题: utf
进入Programming版参与讨论
1 (共1页)
b***i
发帖数: 3043
1
我们的嵌入式项目使用基本的串口,大概每秒一共<1KB的数据进来,需要处理和存储。
我们需要TCP/IP,需要流行的基本库,比如gzip, JSON等。我们使用Linux来解决底层
的库,现在说说对C++11的感受。
目前,按照几位高手的启发,现在Visual Studio 2015下实验,TCP/IP的同步异步都试
过了,多线程也很简单。
我们目标是使用Xilinx SDK,还没有安装最新的2015.3,只装了2015.2,是g++4.9.1,
所以支持C++11,不完全支持C++14。Xilinx SDK用过几小时,基于Eclipse。Visual
Studio里面我建立一个Solution,然后建立多个Project,互相依靠。不知道Xilinx SDK
是不是也这样,可否把程序模块化,分成多个项目?按说Eclipse就可以这样,一个
workspace多个项目。网上很少能查到Xilinx SDK的信息,包括g++版本只能安装后看。
我原来虚拟机下的g++才4.4,费了好大劲才升级成4.9.3。公司还不让git,不让
sourceforge下载源代码,连asio都是自己在家下然后发给自己邮箱。
我们需要JSON,所以看了JSONcpp,似乎可以处理UTF-8的value,只要name是ASCII。似
乎Name是不是UTF-8也无关紧要。但是C++处理UTF-8还是不简单,连算个长度都需要<
codecvt>,转化成UTF-16。Visual Studio 2015居然报找不到symbol (std::codecvt..
.),8月就有人提了,还没有解决。对我们项目似乎影响不大,我们只需要保存用户存
的UTF-8信息,不用显示,因为我们的嵌入式系统也未必有他们的字体。所以我们只显
示第几个设备什么温度等,不需要显示设备的中文名什么的。
gzip在Java里直接支持,而C++需要下载第三方的库,比如boost。不知道是不是到了C+
+11/14里面?很多网上的信息都是2011年之前的。其他方面的信息也是这样不很清楚。
比如大部分boost都到了C++11里面,但是留了一些。幸亏有个asio处理TCP/IP,而
boost的gzipfilter就不知道现状。我不想用boost,因为太大,还有很多人说不成功。
看来,就是C++的用户少了,而C++11的用户更少。为什么用C++11呢?主要是为了尽量
节省自己开发轮子的时间,还有尽量模块化,封装等。至于继承什么的,用一些。高级
的特性基本不用。Lamda我都看不懂。所以我认为C帮不了我们什么,只能自己制造轮子
。感觉Java确实解决了很大问题,才这么流行。另外我们PC程序是C#的,所以如果Java
支持串口,GPIO,我们就真的都用Java了。
t**r
发帖数: 3428
2
2015年了,大兄弟。。。
n******7
发帖数: 12463
3
2015年了,所以?

【在 t**r 的大作中提到】
: 2015年了,大兄弟。。。
m**u
发帖数: 541
4
楼主说的这些,和C11有关系么。。。。。
m**u
发帖数: 541
5
楼主说的这些,和C11有关系么。。。。。
m**u
发帖数: 541
6
楼主说的这些,和C11有关系么。。。。。
m**u
发帖数: 541
7
楼主说的这些,和C11有关系么。。。。。
m**u
发帖数: 541
8
楼主说的这些,和C11有关系么。。。。。
d****i
发帖数: 4809
9
I think what he means C++ 14 is the newest standard. But I'm still using
good old C++ 98, and only basic feature without all advanced features. But
it is good enough and does all the jobs.

【在 n******7 的大作中提到】
: 2015年了,所以?
b*******s
发帖数: 5216
10
新特性其实不是为嵌入式准备的,所以你用不上

【在 d****i 的大作中提到】
: I think what he means C++ 14 is the newest standard. But I'm still using
: good old C++ 98, and only basic feature without all advanced features. But
: it is good enough and does all the jobs.

相关主题
C++两个问题发现ramdisk不错,多个进程通信用文件就可以了,简单
ASIO异步一问有专门讲 message server performance 的资料吗
release模式可以,debug模式出错是怎么回事?选择 WCF 还是 ASP.NET WebApi
进入Programming版参与讨论
k**********g
发帖数: 989
11
let me guess
你要的是轮子,而且是嵌入式的轮子。
你可能需要一些瑞士的工匠替你装嵌。
b***i
发帖数: 3043
12
我的嵌入式是666MHz ARM双核心,1GB内存,Linux 3.17,所以,新特性很多可以用上
。比如,thread, auto, 确定长度的整形变量类型int16, std::move, Lambda, 统一
的初值和矩阵赋初值格式, nullptr, Delegating Constructors(这个和Java一样了),
就好像手机是不是嵌入式,它和服务器台式机编程有多大不同?我前面说过,我宁愿用
Java,现在发现C++11已经很像Java了。

【在 b*******s 的大作中提到】
: 新特性其实不是为嵌入式准备的,所以你用不上
b***i
发帖数: 3043
13
你都没仔细看啊,轮子不是嵌入式也行啊,比如完美解决utf-8字符串长度的,C++11就
没有,asio也不在里面,gzip也是。这些都不是只有嵌入式才需要的?

【在 k**********g 的大作中提到】
: let me guess
: 你要的是轮子,而且是嵌入式的轮子。
: 你可能需要一些瑞士的工匠替你装嵌。

i****k
发帖数: 668
14
这话说的不对,应该说现代的嵌入式和非嵌入式的系统的区别越来越小了。

【在 b*******s 的大作中提到】
: 新特性其实不是为嵌入式准备的,所以你用不上
l******n
发帖数: 62
15
zlib可以实现gzip。很小的库
l*********s
发帖数: 5409
16
问题是即使库再小,不在标准库里新手要么找不到要么不知道怎么挑。

【在 l******n 的大作中提到】
: zlib可以实现gzip。很小的库
T********i
发帖数: 2416
17
第一,我不认为你的应用需要utf8分字符。
第二,如果你需要,我可以送你一个。几十行,我用了将近10年了。
第三,你这个根本不是嵌入式,就是标准的linux/posix系统。

【在 b***i 的大作中提到】
: 你都没仔细看啊,轮子不是嵌入式也行啊,比如完美解决utf-8字符串长度的,C++11就
: 没有,asio也不在里面,gzip也是。这些都不是只有嵌入式才需要的?

j******t
发帖数: 788
18
VC11++的很多特性,真的很慢。这里很多人可能都不承认,但是我用起来真的是很慢。

【在 T********i 的大作中提到】
: 第一,我不认为你的应用需要utf8分字符。
: 第二,如果你需要,我可以送你一个。几十行,我用了将近10年了。
: 第三,你这个根本不是嵌入式,就是标准的linux/posix系统。

b*******s
发帖数: 5216
19
do you mind to give some names?

【在 j******t 的大作中提到】
: VC11++的很多特性,真的很慢。这里很多人可能都不承认,但是我用起来真的是很慢。
w***g
发帖数: 5958
20
VC不知道,g++我这边一点问题都没有。这段时间我正在慢慢转C++14了。
可能我没用你说的慢特性吧。我应该是本版少数的几个性能党了,
至少目前我还没看到C++有啥制约我用足硬件性能的问题。
相反,C++11引入的线程库把不少以前需要用平台库
甚至手写的常用功能标准化了,写起来非常爽。前两天我刚写了一个
存储图片的数据库,磁盘调度用packaged task写的,非常干净,
HDD吞吐量可以做到>100MB/s,基本上能达到裸盘极限了。
如果用C写,可能能省几个点的CPU,但是程序的量可能得多好几倍,
还得依赖各种不标准的东西。
最近新出来的大数据平台grappa也是全面C++11了,传进去的都是
lambda,然后底层在他们自己实现的user-space thread库上跑,
性能秒杀spark和graphlab这些,写出来的程序也是非常漂亮。
我本来就是C++党,准备抛弃spark了。
要不你展开说说你有什么问题。

【在 j******t 的大作中提到】
: VC11++的很多特性,真的很慢。这里很多人可能都不承认,但是我用起来真的是很慢。
相关主题
用ASIO写TCP/IP,同步还是异步 ?向硬盘上写大文件的方法
普通TCP还是HTTP?perl, Java, C/C++ 在数据处理和分析中的比较
in C++ how to write file in gzip format directly?(zz)C++11新特性
进入Programming版参与讨论
b***i
发帖数: 3043
21
我也不一定需要准确分字符,正式因为在PC端使用了C#,所以可以检查字符串长度,比
如规定JSon每个值不要太长出问题就行。不过你的utf8分字符还是送我吧。
我这个和嵌入式还是有共同点的,我要GPIO,要直接控制Framebuffer,没有其他UI,
比如mouse, keyboard, button, menu等。是自己写简单的直接控制显示屏的UI。
还有就是需要自己控制串口,用FPGA写串口,主要是因为主流的无法达到1Mbps以上和9
位这个要求。
我的文件存在sd卡上,从QSPI Flash读取ROMdisk到RAM。要做Linux kernel,程序要写
好一起和kernel build等。这些都是嵌入式的特征。但是,不是古老的无OS的嵌入式。
是类似Android的嵌入式了。

【在 T********i 的大作中提到】
: 第一,我不认为你的应用需要utf8分字符。
: 第二,如果你需要,我可以送你一个。几十行,我用了将近10年了。
: 第三,你这个根本不是嵌入式,就是标准的linux/posix系统。

T********i
发帖数: 2416
22
算了,我也懒得找了。给你一个git。比我的全。
https://gist.github.com/antonijn/9009746

和9

【在 b***i 的大作中提到】
: 我也不一定需要准确分字符,正式因为在PC端使用了C#,所以可以检查字符串长度,比
: 如规定JSon每个值不要太长出问题就行。不过你的utf8分字符还是送我吧。
: 我这个和嵌入式还是有共同点的,我要GPIO,要直接控制Framebuffer,没有其他UI,
: 比如mouse, keyboard, button, menu等。是自己写简单的直接控制显示屏的UI。
: 还有就是需要自己控制串口,用FPGA写串口,主要是因为主流的无法达到1Mbps以上和9
: 位这个要求。
: 我的文件存在sd卡上,从QSPI Flash读取ROMdisk到RAM。要做Linux kernel,程序要写
: 好一起和kernel build等。这些都是嵌入式的特征。但是,不是古老的无OS的嵌入式。
: 是类似Android的嵌入式了。

g*********e
发帖数: 14401
23
哈 俺以前就是在x 做sdk的



【在 b***i 的大作中提到】
: 我们的嵌入式项目使用基本的串口,大概每秒一共<1KB的数据进来,需要处理和存储。
: 我们需要TCP/IP,需要流行的基本库,比如gzip, JSON等。我们使用Linux来解决底层
: 的库,现在说说对C++11的感受。
: 目前,按照几位高手的启发,现在Visual Studio 2015下实验,TCP/IP的同步异步都试
: 过了,多线程也很简单。
: 我们目标是使用Xilinx SDK,还没有安装最新的2015.3,只装了2015.2,是g++4.9.1,
: 所以支持C++11,不完全支持C++14。Xilinx SDK用过几小时,基于Eclipse。Visual
: Studio里面我建立一个Solution,然后建立多个Project,互相依靠。不知道Xilinx SDK
: 是不是也这样,可否把程序模块化,分成多个项目?按说Eclipse就可以这样,一个
: workspace多个项目。网上很少能查到Xilinx SDK的信息,包括g++版本只能安装后看。

b***i
发帖数: 3043
24
参拜大牛,那PetaLinux你熟悉吗?
问一下,SDK下的项目是否像Visual STudio solution一样,可以多project,最后一个
可执行文件?我对Eclipse CDT不是很熟

【在 g*********e 的大作中提到】
: 哈 俺以前就是在x 做sdk的
:
:

g*********e
发帖数: 14401
25

不熟 petaLogic是一家被x收购的公司
你说的sdk是vivado还是什么

【在 b***i 的大作中提到】
: 参拜大牛,那PetaLinux你熟悉吗?
: 问一下,SDK下的项目是否像Visual STudio solution一样,可以多project,最后一个
: 可执行文件?我对Eclipse CDT不是很熟

b***i
发帖数: 3043
26
我说的sdk是指写 c c++的集成环境, Xilinx SDK, 和 vivado 一起下载,但是是软件
方面的,你是做vivado得马?

【在 g*********e 的大作中提到】
:
: 不熟 petaLogic是一家被x收购的公司
: 你说的sdk是vivado还是什么

g*********e
发帖数: 14401
27

我以前做vivado里面的一个buttom

【在 b***i 的大作中提到】
: 我说的sdk是指写 c c++的集成环境, Xilinx SDK, 和 vivado 一起下载,但是是软件
: 方面的,你是做vivado得马?

z*****u
发帖数: 62
28
你用的visual studio 2015以前版本吧?那是对stl 的优化很差。g++和clang的支持要
好很多。

【在 j******t 的大作中提到】
: VC11++的很多特性,真的很慢。这里很多人可能都不承认,但是我用起来真的是很慢。
m********o
发帖数: 796
29
古老的嵌入式。。。你说的这些十多年前就做烂了

和9

【在 b***i 的大作中提到】
: 我也不一定需要准确分字符,正式因为在PC端使用了C#,所以可以检查字符串长度,比
: 如规定JSon每个值不要太长出问题就行。不过你的utf8分字符还是送我吧。
: 我这个和嵌入式还是有共同点的,我要GPIO,要直接控制Framebuffer,没有其他UI,
: 比如mouse, keyboard, button, menu等。是自己写简单的直接控制显示屏的UI。
: 还有就是需要自己控制串口,用FPGA写串口,主要是因为主流的无法达到1Mbps以上和9
: 位这个要求。
: 我的文件存在sd卡上,从QSPI Flash读取ROMdisk到RAM。要做Linux kernel,程序要写
: 好一起和kernel build等。这些都是嵌入式的特征。但是,不是古老的无OS的嵌入式。
: 是类似Android的嵌入式了。

1 (共1页)
进入Programming版参与讨论
相关主题
perl, Java, C/C++ 在数据处理和分析中的比较请推荐C++开发环境
(zz)C++11新特性C++两个问题
问一个defining array 的问题ASIO异步一问
int F::*x = &F::x是什么意思?release模式可以,debug模式出错是怎么回事?
ASIO TCP传送JSON如何知道包结束?发现ramdisk不错,多个进程通信用文件就可以了,简单
JSONCPP和ASIO能否联合使用(C++11)?有专门讲 message server performance 的资料吗
boost vs C++11选择 WCF 还是 ASP.NET WebApi
akka能和C++程序通信吗?用ASIO写TCP/IP,同步还是异步 ?
相关话题的讨论汇总
话题: c++话题: sdk话题: 嵌入式话题: java话题: utf