首页 文章 精选 留言 我的

精选列表

搜索[官方镜像],共10000篇文章
优秀的个人博客,低调大师

官方总结鸿蒙应用开发常见问题与实现方法典型案例

1自定义Dialog的布局 1.1 问题描述 如何实现自定义的Dialog? 1.2 实现方法 添加自定义Dialog代码 CommonDialog commonDialog = new CommonDialog(this); Component component = LayoutScatter.getInstance(getContext()) .parse(ResourceTable.Layout_dialog_custom_layout, null, true); commonDialog.setSize(800, 500); commonDialog.setContentCustomComponent(component); commonDialog.show(); 自定义Dialog的布局文件 <?xml version="1.0" encoding="utf-8"?> <DirectionalLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:width="match_parent" ohos:height="match_content" ohos:padding="10vp" ohos:background_element="@graphic:grey" ohos:orientation="vertical"> <Text ohos:width="match_parent" ohos:height="match_content" ohos:text="Dialog标题" ohos:text_color="$color:Black" ohos:text_style="bold" ohos:text_size="40fp"/> <Text ohos:width="match_parent" ohos:height="match_parent" ohos:text="自定义Dialog内容" ohos:text_color="$color:Black" ohos:text_style="bold" ohos:weight="1" ohos:text_alignment="vertical_center" ohos:top_margin="30vp" ohos:bottom_margin="30vp" ohos:left_margin="10vp" ohos:right_margin="10vp" ohos:text_size="30fp"/> <DirectionalLayout ohos:height="match_content" ohos:width="match_parent" ohos:orientation="horizontal"> <Button ohos:width="match_parent" ohos:text="取消" ohos:text_size="30fp" ohos:padding="10vp" ohos:text_color="$color:White" ohos:weight="1" ohos:margin="10vp" ohos:background_element="$graphic:yellow" ohos:height="match_content"/> <Button ohos:width="match_parent" ohos:text="确定" ohos:text_size="30fp" ohos:weight="1" ohos:padding="10vp" ohos:text_color="$color:White" ohos:margin="10vp" ohos:background_element="$graphic:green" ohos:height="match_content"/> </DirectionalLayout> </DirectionalLayout> 1.3 实际效果 2 设置控件背景颜色 2.1 问题描述 在xml布局中设置控件ohos:background_element="$color:yellow"无效,目前背景颜色不支持以$color方式设置,只支持$graphic方式设置。 2.2 实现方法 方式1:xml中设置控件背景颜色使用$graphic <Button ohos:width="match_parent" ohos:text="控件按钮" ohos:text_size="30fp" ohos:padding="10vp" ohos:text_color="$color:White" ohos:background_element="$graphic:yellow" ohos:height="match_content"/> 资源文件graphic中yellow.xml代码如下: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:shape="rectangle"> <solid ohos:color="#fff9a825"/> </shape> 方式2:纯代码设置控件颜色 DirectionalLayout.LayoutConfig config = new DirectionalLayout.LayoutConfig(DirectionalLayout.LayoutConfig.MATCH_CONTENT, DirectionalLayout.LayoutConfig.MATCH_CONTENT); config.setMargins(30, 10, 10, 10); ShapeElement element = new ShapeElement(); element.setRgbColor(new RgbColor(255, 111, 0)); Text text = new Text(this); text.setText("xml添加背景"); text.setTextColor(new Color(0xFFFFFFFF)); text.setTextSize(40); text.setPadding(30, 20, 30, 20); text.setTextAlignment(TextAlignment.CENTER); text.setBackground(element); text.setLayoutConfig(config); 2.3 实际效果 3 ScrollView嵌套DirectionalLayout进行滚动 3.1 问题描述 ScrollView嵌套DirectionalLayout如何进行滚动? 3.2 实现方法 使用xml布局,需要将ScrollView的高度设置成“match_parent”,ScrollView子布局的高度设置成“match_content” <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:width="match_parent" ohos:height="match_parent" ohos:orientation="vertical"> <DirectionalLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:width="match_parent" ohos:height="match_content" ohos:orientation="vertical"> ... </DirectionalLayout> </ScrollView> 使用代码添加,则需要给ScrollView和子布局设置LayoutConfig ComponentContainer.LayoutConfig scrollConfig = new ComponentContainer.LayoutConfig(DirectionalLayout.LayoutConfig.MATCH_PARENT, DirectionalLayout.LayoutConfig.MATCH_PARENT); scrollView.setLayoutConfig(scrollConfig); DirectionalLayout.LayoutConfig config = new DirectionalLayout.LayoutConfig(DirectionalLayout.LayoutConfig.MATCH_PARENT, DirectionalLayout.LayoutConfig.MATCH_CONTENT); myLayout.setLayoutConfig(config); ... scrollView.addComponent(myLayout); super.setUIContent(scrollView); 3.3 实际效果 4 加载和显示网络图片 4.1 问题描述 如何实现加载和显示网络图片? 4.2 实现方法 在config.json中添加网络权限 { "module": { "reqPermissions": [ { "name": "ohos.permission.INTERNET" } ] } } 获取并设置网络图片 String urlImage = "https://www.harmonyos.com/resource/image/community/20201009-164134eSpace.jpg"; HttpURLConnection connection = null; try { URL url = new URL(urlImage); URLConnection urlConnection = url.openConnection(); if (urlConnection instanceof HttpURLConnection) { connection = (HttpURLConnection) urlConnection; } if (connection != null) { connection.connect(); // 之后可进行url的其他操作 // 得到服务器返回过来的流对象 InputStream inputStream = urlConnection.getInputStream(); ImageSource imageSource = ImageSource.create(inputStream, new ImageSource.SourceOptions()); ImageSource.DecodingOptions decodingOptions = new ImageSource.DecodingOptions(); decodingOptions.desiredPixelFormat = PixelFormat.ARGB_8888; // 普通解码叠加旋转、缩放、裁剪 PixelMap pixelMap = imageSource.createPixelmap(decodingOptions); // 普通解码 getUITaskDispatcher().syncDispatch(() -> { Image image = new Image(HttpImageSlice.this); DirectionalLayout.LayoutConfig config = new DirectionalLayout.LayoutConfig(DirectionalLayout.LayoutConfig.MATCH_CONTENT, DirectionalLayout.LayoutConfig.MATCH_CONTENT); config.setMargins(10, 10, 10, 10); image.setLayoutConfig(config); image.setPixelMap(pixelMap); myLayout.addComponent(image); pixelMap.release(); }); } } catch (Exception e) { e.printStackTrace(); } 4.3 实际效果 5 ListContainer列表组件的使用 5.1 问题描述 ListContainer列表组件如何使用? 5.2 实现方法 在xml文件中声明组件 <?xml version="1.0" encoding="utf-8"?> <DirectionalLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:width="match_parent" ohos:height="match_parent" ohos:orientation="vertical"> <ListContainer ohos:id="$+id:list_container" ohos:orientation="vertical" ohos:width="match_parent" ohos:height="match_parent"/> </DirectionalLayout> 获取 ListContainer 组件,并设置itemProvider private void initView() { mListContainer = (ListContainer) findComponentById(ResourceTable.Id_list_container); ListItemProvider listItemProvider = new ListItemProvider(); mListContainer.setItemProvider(listItemProvider); } 自定义 ListItemProvider 继承 RecycleItemProvider class ListItemProvider extends RecycleItemProvider { @Override public int getCount() { return data.size(); } @Override public long getItemId(int i) { return 0; } @Override public Component getComponent(int position, Component convertView, ComponentContainer componentContainer) { Component component = LayoutScatter.getInstance(getContext()) .parse(ResourceTable.Layout_layout_container_item, null, false); if (!(component instanceof ComponentContainer)) { return null; } ComponentContainer rootLayout = (ComponentContainer) component; Text rightText = (Text) rootLayout.findComponentById(ResourceTable.Id_content); rightText.setText(data.get(position)); return component; } } 5.3 实际效果 6 读取资源文件 6.1 问题描述 如何读取应用的资源文件? 6.2 实现方法 对于图片文件,建议放到base/media目录下,Image组件可以直接设置,方法如下。 Image image = (Image) findComponentById(ResourceTable.Id_component_image); image.setPixelMap(ResourceTable.Media_huawei); 对于rawfile文件的读写,请参考下面的方法: ohos.global.resource.ResourceManager resourceManager = getApplicationContext().getResourceManager(); ohos.global.resource.RawFileEntry rawFileEntry = resourceManager.getRawFileEntry("resources/rawfile/test.png"); RawFileDescriptor rawFileDescriptor = rawFileEntry.openRawFileDescriptor(); // 或者 Resource resource = rawFileEntry.openRawFile(); 6.3 实际效果 7 JS方法获取位置信息 7.1 问题描述 使用JS开发时,如何获取位置信息? 7.2 实现方法 导入获取位置模块,并调用getLocation方法获取位置信息 import geolocation from '@system.geolocation'; export default { data: { longitude: 0.0, latitude: 0.0 }, onInit() { this.getLocation(); }, getLocation() { var temp = this; geolocation.getLocation({ success: function(data) { console.info("get location success, longitude: " + data.longitude +", latitude: " + data.latitude); temp.longitude = data.longitude temp.latitude = data.latitude; }, fail: function(data, code) { console.error("get location failed, code: " + code + ", data: " + data); }, complete: function() { console.info("get location complete"); } }); } } 在config.json中增加获取位置信息的权限 "reqPermissions": [ { "name": "ohos.permission.LOCATION" } ], 7.3 实际效果 8 禁用手表中系统的左右滑动 8.1 问题描述 开发一个应用支持左右滑动的操作,但是在模拟器中右滑时,默认跳转到系统页面,并退出应用,如何禁用系统右滑? 8.2 实现方法 覆盖MainAbility中的onTouchEvent方法,实现如下 @Override protected boolean onTouchEvent(TouchEvent event) { super.onTouchEvent(event); return true; } 8.3 实际效果 9 Text控件中文字换行 9.1 问题描述 Text控件中文字目前不支持\n换行,如何进行换行? 9.2 实现方法 可以使用系统自动换行,保持两行文字长度一致,实现如下 <?xml version="1.0" encoding="utf-8"?> <DirectionalLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:width="match_parent" ohos:height="match_parent" ohos:orientation="vertical"> <Text ohos:id="$+id:text" ohos:width="150vp" ohos:height="match_content" ohos:multiple_lines="true" ohos:max_text_lines="2" ohos:auto_font_size="true" ohos:text="目前车辆尊享服务已过期, 车主续费后才可继续使用"/> </DirectionalLayout> 9.3 实际效果 10 在一个布局xml中引入其他xml布局文件 10.1 问题描述 定义了一个公共的XML布局文件,如何在其他XML布局文件中引用这个公共的XML布局文件? 10.2 实现方法 可以通过include标签引用其他的XML布局文件,示例如下: <?xml version="1.0" encoding="utf-8"?> <include ohos:id="$+id:include_layout" ohos:layout="$layout:include_layout" ohos:width="match_parent" ohos:height="match_content"/> </DirectionalLayout> 10.3 实际效果 NA 11 自定义Swtich控件的颜色 11.1 问题描述 如何自定义Swtich控件的开关两个状态下的按钮颜色? 11.2 实现方法 在资源文件graphic文件下创建bg_element.xml和fg_element.xml,bg_element.xml文件内容如下 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:shape="rectangle"> <corners ohos:radius="30"/> <solid ohos:color="#424242"/> </shape> fg_element.xml文件内容如下 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:shape="oval"> <solid ohos:color="#D81B60"/> </shape> 代码实现自定义颜色: private void setupSwitch() { mSwitch = (Switch) findComponentById(ResourceTable.Id_switch_custom); Element elementBackground = ElementScatter.getInstance(this).parse(ResourceTable.Graphic_bg_element); mSwitch.setTrackElement(elementBackground); Element elementThumb = ElementScatter.getInstance(this).parse(ResourceTable.Graphic_fg_element); mSwitch.setThumbElement(elementThumb); mSwitch.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { Log.i("switch: " + mSwitch.isChecked()); } }); } 11.3 实际效果 12 视频播放 12.1 问题描述 如何播放本地视频文件和网络视频? 12.2 实现方法 创建布局文件video_player_layout.xml,内容如下 <?xml version="1.0" encoding="utf-8"?> <DependentLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:id="$+id:video_player_dl" ohos:width="match_parent" ohos:height="match_parent" ohos:orientation="vertical"> </DependentLayout> 定义下面的变量,内容如下: private static Player mPlayer; private SurfaceProvider mSurfaceProvider; private DependentLayout mLayout; 实现SurfaceOps.Callback接口,代码如下: class VideoSurfaceCallback implements SurfaceOps.Callback { @Override public void surfaceCreated(SurfaceOps surfaceOps) { Log.i("surfaceCreated() called."); if (mSurfaceProvider.getSurfaceOps().isPresent()) { Surface surface = mSurfaceProvider.getSurfaceOps().get().getSurface(); playUrl(surface); } } @Override public void surfaceChanged(SurfaceOps surfaceOps, int i, int i1, int i2) { Log.i("surfaceChanged() called."); } @Override public void surfaceDestroyed(SurfaceOps surfaceOps) { Log.i("surfaceDestroyed() called."); } } 实现Player.IplayerCallback接口,代码如下: private class VideoPlayerCallback implements Player.IPlayerCallback { @Override public void onPrepared() { Log.i("onPrepared"); } @Override public void onMessage(int i, int i1) { Log.i("onMessage"); } @Override public void onError(int i, int i1) { Log.i("onError: i=" + i + ", i1=" + i1); } @Override public void onResolutionChanged(int i, int i1) { Log.i("onResolutionChanged"); } @Override public void onPlayBackComplete() { Log.i("onPlayBackComplete"); if (mPlayer != null) { mPlayer.stop(); mPlayer = null; } } @Override public void onRewindToComplete() { Log.i("onRewindToComplete"); } @Override public void onBufferingChange(int i) { Log.i("onBufferingChange"); } @Override public void onNewTimedMetaData(Player.MediaTimedMetaData mediaTimedMetaData) { Log.i("onNewTimedMetaData"); } @Override public void onMediaTimeIncontinuity(Player.MediaTimeInfo mediaTimeInfo) { Log.i("onMediaTimeIncontinuity"); } } 实现播放本地文件的方法,其中test.mp4文件放到资源文件目录下,内容如下: private void playLocalFile(Surface surface) { try { RawFileDescriptor filDescriptor = getResourceManager().getRawFileEntry("resources/rawfile/test.mp4").openRawFileDescriptor(); Source source = new Source(filDescriptor.getFileDescriptor(),filDescriptor.getStartPosition(),filDescriptor.getFileSize()); mPlayer.setSource(source); mPlayer.setVideoSurface(surface); mPlayer.setPlayerCallback(new VideoPlayerCallback()); mPlayer.prepare(); mSurfaceProvider.setTop(0); mPlayer.play(); } catch (Exception e) { Log.e("playUrl Exception:" + e.getMessage()); } } 实现播放网络URL的方法,其中video url为视频资源URL,内容如下: private void playUrl(Surface surface) { try { Source source = new Source("video url"); mPlayer.setSource(source); mPlayer.setVideoSurface(surface); mPlayer.setPlayerCallback(new VideoPlayerCallback()); mPlayer.prepare(); mSurfaceProvider.setTop(0); mPlayer.play(); } catch (Exception e) { Log.e("playUrl Exception:" + e.getMessage()); } } 播放网络视频,需要申请网络使用权限,在config.json中增加如下内容: "reqPermissions": [ { "name": "ohos.permission.INTERNET" }, ] 12.3 实际效果 原文链接:https://developer.huawei.com/consumer/cn/forum/topic/0204410755673870341?fid=0101303901040230869 原作者:eva3w

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

Windows 10X 官方文档曝光,不只为多屏设备而设计

本月初,微软在纽约市举行的秋季活动中介绍了双屏设备 Surface Neo预览版,该设备运行的操作系统称为Windows 10X。但关于 Windows 10X的详细信息并不多。最近 Twitter 用户 WalkingCat发现微软泄露的该系统信息的文档,并共享了该文档链接。与此同时,被另外的用户及时截图记录下来。 此前,我们都以为 Windows 10X是专为多屏设备设计的操作系统,而根据文档表明,Windows 10X 是为可折叠设备和更传统的笔记本电脑设计,在 Windows 10X 下,本地应用程序(local app)和渐进式网络应用程序(PWA)是平等的。 Windows 10X 主要目标是用户友好性、有效性和简单性。传统的“开始”菜单改为“启动程序”,它包含一个 Web 搜索功能以及一个用户定义的静态应用程序和网页的区域。下面我们来看看被曝光的文档内容: 这是一个在后台进行了融合的操作系统 该系统建立在交互系统上,从而让你可以专注于手头上的任务 在系统上对任务的执行操作包括:启动,通知,搜索等 通过简单和高效的方式来探索如何处理每个任务 遵循原则 以人为本 为构建未来的系统,我们对过去所发布的系统进行了深入的研究。而 Santorini(Windows 10X 的内部代号)将围绕着消费者需求而设计,可以更加灵活地调整和用户的交互方式。 模式、组件、指导 通过研究,用户测试和技术文档,可以对 POR 设计和文档进行集中处理,并具有设计和决策过程的历史视图。 Launcher Launcher 可帮助用户快速启动和恢复任务。搜索将无缝整合网页结果、可用应用程序以及设备上的指定文件。在内容层次结构的下方是默认的应用程序快捷方式,用户可以根据自己的偏好进行自定义和更改。伴随着用户使用时间的推移,Launcher 能够记忆用户的习惯,更懂用户的需求。最后,推荐内容是根据您使用最频繁的应用程序、文件和网站动态更新的,无需从头开始即可跳回到您的个人工作流程。 目标和原则 轻松快捷地返回你的 Flow 如果找不到您想要的东西,不会陷入死循环 对建议的价值建立长期信任 搜索 在网络上找到所需的内容,或在设备上查找应用程序和文件,在整个设备上进行搜索的单一入口点简单而轻松。 零输入建议 有效的输入和搜索结果 支持触摸,键盘和语音输入应用和网站 应用和网站 拖放以重新排列您的应用和网站,使您的收藏夹位于列表的顶部。要获取所有其他应用,只需将网格扩展为“全部显示”即可。 Inbox 默认应用包括:Edge, Mail, Calendar, Word, Excel, PowerPoint, OneNote, Teams, Whiteboard, To Do, Photos, Store, File Explorer, Spotify, Netflix, Camera, Solitaire, Calculator, Alarms & Clock, Movies & TV, Office, Sticky Notes, Paint, Learning Hub, Settings, Weather, Snip & Sketch, Voice Recorder, Groove Music, People, Notepad, Feedback Hub, Media Plan, Messaging 以及最多 4 款 OEM 应用程序 通过将应用程序堆叠在一起来创建文件夹和组 从网格中删除应用程序以将其从设备中删除 推荐 使用最近安装的应用程序回到您的 Flow 中;常用的应用程序,文件和网站。 一次最多显示 10 个高可信度建议 如果找不到所需的内容,请点按“显示更多”以展开更多内联项目 或者从推荐的文件中打开“打开文件位置”,以查看相关文件 锁定/登陆 使用“限制锁定”模型时,屏幕打开时,您立即进入身份验证状态。与 Windows 10 不同,在 Windows 10 中,您首先需要在身份验证之前解开锁屏幕。Windows Hello 面部识别以及 OOBE 期间的 Windows Hello PIN,唤醒设备后,Windows Hello Face 会立即识别用户,并将立即转换到其桌面。 目标和原则 客户信任设备以确保其数据安全 客户可以尽快进行计算工作 客户可以感觉到与其设备的个人联系,因为它是为他们量身定制的 结构和范围 快速设置 快速设置为用户提供了一种几乎直观的方式来访问其常用设置。如今,设置存在于多个表面中,并且没有清晰一致的路径供用户访问对其最重要的设置。 目标与原则 高效:用户可以快速修改其关键设备设置 专注:仅显示重要的设备设置,因此用户不会被其他设置分散注意力 快速查看:快速查看设备状态 相关性:使用户能够根据自己的需求定制表面 结构与范围 快速设置面有两个级别的设置:L1 是主要的快速面;当需要更多的轻量级设置细节时,可用 L2。 任务栏 目标与原则 用户可以在任务栏上的应用程序之间切换 用户可以从任务栏启动应用程序和网站 用户可以访问经常使用的应用程序和网站 用户具有启动“开始”,“任务切换器”和“快速操作”的入口点 结构与范围 正在运行的网站:窗口中的活动Web选项卡,可以处于前台或后台 发光:任务栏的行为,其中一个应用程序的多个实例被分组在同一图标下 活动状态:当该应用程序处于活动状态/处于焦点状态时,高亮显示在任务栏图标上 运行状态:任务栏图标下划线的行为当应用程序运行时,该应用程序是否处于焦点状态 扩展用户界面:发光行为,在任务栏图标上悬停时,用户界面会显示该应用程序各种实例的缩略图最近使用的应用程序:最近启动的应用程序。可以在任务栏上运行还是不运行系统状态:系统状态栏状态:系统栏:系统状态的状态;与“最小化任务栏”同义 堆叠的系统状态:任务栏上的系统状态时,查看系统状态 连接 用户大部分时间都在网上度过。我想访问连接的文件,因为它们是操作系统的一部分。您所有的东西,当您需要时就可以使用。在启动器的“推荐”部分中找到所有文件(在线或离线)。在下面的 Windows 10X 中浏览连接界面。 Family 无需指示(No need for instructions)操作系统是 Windows 和我每天使用的设备的直观结合。拿起 Windows 10X,重新开始您的任务 适应性强(Adaptive)适应我如何使用生态系统中每个设备的操作系统。Windows 10X 每天处理 8 条不同的帖子,以帮助我完成工作 平静(Calm)通过精心选择美学来庆祝专注和精准的系统 毫不费力(Effortless)一个不会妨碍您的系统,可以帮助我更快地获得想要的东西 参考: https://m.cnbeta.com/view/903615.htm

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

阿里云容器服务cni网络插件terway非官方网络性能测试

作者:荣滨,酷划在线后端架构师,关注微服务治理,容器化技术,Service Mesh等技术领域 terway网络性能测试 酷划在线成立于2014年,是国内激励广告行业的领军者。酷划致力于打造一个用户、广告主、平台三方共赢的激励广告生态体系,旗下产品“酷划锁屏”“淘新闻”分别为锁屏、资讯行业的领跑者。 伴随着公司服务端架构向微服务演进的过程中,服务增多,运维成本提高,资源利用率低,等问题日益凸显,目前公司服务器规模超过700+台ECS,服务数量1000+,随着容器化技术的成熟,计划在近期大规模将生产环境迁移到阿里云容器服务平台上,但由于VxLan等主机转发模式的Overlay网络均有一定的性能损耗,所以我们将目光瞄准阿里云容器服务平台开源的terway网络插件,期望使用能够动态绑定弹性网卡的容器服务达到ECS的网络性能,进而对terway网络性能进行详细的评估。 测试说明 本测试基于阿里云容器服务Kubernetes版(1.12.6-aliyun.1),Kubernetes集群使用阿里云控制台创建,测试分两部分: 同可用区网络性能测试 跨可用区网络性能测试 本测试的所有网络流量均为跨节点通信(容器分布在不同的宿主机节点上)本测试的所有测试均穿插测试超过3组取结果平均值 关键指标 吞吐量(Gbit/sec) PPS(Packet Per Second) 延时(ms) 测试方法 吞吐量,PPS测试使用iperf3 版本信息如下: iperf 3.6 (cJSON 1.5.2) Linux iperf3-terway-57b5fd565-bwc28 3.10.0-957.5.1.el7.x86_64 #1 SMP Fri Feb 1 14:54:57 UTC 2019 x86_64 Optional features available: CPU affinity setting, TCP congestion algorithm setting, sendfile / zerocopy, socket pacing 测试机命令: # 启动服务器模式,暴露在端口16000,每1秒输出一次统计数据 iperf3 -s -i 1 -p 16000 陪练机命令: # 测试吞吐量 # 客户端模式,默认使用tcp通信,目标机为172.16.13.218,持续时间45,-P参数指定网卡队列数为4(跟测试的机型有关),目标端口16000 iperf3 -c 172.16.13.218 -t 45 -P 4 -p 16000 # 测试PPS # 客户端模式,使用udp发包,包大小为16字节,持续时间45秒,-A指定CPU亲和性绑定到第0个CPU iperf3 -u -l 16 -b 100m -t 45 -c 172.16.13.218 -i 1 -p 16000 -A 0 # 测试延迟 # ping目标机30次 ping -c 30 172.16.13.218 测试结果 同可用区网络性能测试 机型说明 测试机型选用ecs.sn1ne.2xlarge,规格详情如下 测试结果 说明:纵轴表达流量流出方向,横轴表达流量流入方向,所以组合情况一共有9种 名词解释: terway-eni:代表动态创建弹性网卡并绑定POD的terway网络模式 terway:代表默认的terway网络模式 结果解读 各种模式下均可将网卡带宽打满,从吞吐量上看结果无明显区别 从流量流入容器角度看数据,流向terway-eni模式在各项指标均接近甚至超过流向宿主机的性能 从流量流出容器角度看数据,terway-eni模式性能接近但略低于宿主机流量流出性能,但明显高于terway默认网络 跨可用区网络性能测试 测试机型选用ecs.sn1ne.8xlarge,规格详情如下 测试结果 说明:纵轴表达流量流出方向,横轴表达流量流入方向,所以组合情况一共有9种 名词解释: terway-eni:代表动态创建弹性网卡并绑定POD的terway网络模式 terway:代表默认的terway网络模式 结果解读 由于增加了跨可用区的调用,使影响结果的因素变多 host to host的吞吐量,并没有达到网卡的理论最大值,但是流入terway-eni的吞吐量基本达到了机型的带宽6 Gbit/sec,需要进一步调查宿主机间吞吐量上不去的原因 从容器流出的流量角度看,terway-eni模式整体明显高于terway默认网络模式,但低于宿主机网络性能 从流入容器的流量角度看,terway-eni的PPS结果数据优势比较明显,接近甚至超越宿主机网卡性能 总体结论 terway的网络性能测试中表现出了与宣传一致的性能,通过与作者的沟通中了解到,由于将弹性网卡直接放入POD的namespace内,虽然网卡驱动的中断依然由宿主机内核完成,但是网络包不会出现在宿主机namespace的网络栈,减少了宿主机的一层cni网桥转发及复杂路由的性能损失,这也是为什么在某些场景下超过宿主机网络栈性能的表现。

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

阿里官方python群开始正式招募啦,I want you !

刚刚过完节日的你是否依然还是不在状态,云栖社区的运营小编已经忙的不亦乐乎啦, 最近两周的直播已经安排上,接下来会陆续更新。。。。。。 近两周直播排期 直播主题:Python深度学习第二讲——数据增广 直播时间:2月15日20:00—21:00 课程大纲:1、基于python的深度学习应用大观;2、基于python的深度学习数据增广方法;3、python数据增广所用库及代码解析; 直播讲师:猫饼君,香港城市大学理学硕士,曾在南洋理工大学参加过机器学习算法相关项目,现任职计算机视觉算法工程师,专注于计算机视觉算法研究及应用落地。 直播主题:python基础学习——爬虫分享 直播时间:2月20日 直播讲师:罗攀,阿里特邀专家,林学的研究僧《从零开始学Python网络爬虫》《从零开始学Python数据分析》作者Python中文社区、Python爱好者社

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

看IFA官方如何解读IFA2015的大主题——智能互联

今年IFA的大主题是“智能互联”,而不仅仅是“智能家居”。 一年一度的IFA2015已经在德国柏林拉开帷幕,作为全球家电品牌的盛事,备受全球消费电子、家用电器和相关行业瞩目。今年,IFA给我们带来的是“智能互联”的大主题。一起来看看IFA执行总监Jens Heithecker是如何诠释这一主题。 一、电视在消费电子行业仍是“重头戏” 电视制造商在市场上仍然面临着挑战,竞争日趋激烈让制造商的利润承受压力。不过,在今年的IFA上人们再次看到,电视在消费电子行业仍然是关键,因为对几乎每个消费者来说电视仍然是主要的显示(出口)。今年IFA的大主题是“智能互联”,而不仅仅是“智能家居”,因此会有很多新设备和软件解决方案,这也是所有制造商都瞄准的市场。 二、“智能”遇上“互联”,更要小心对待 这是一个互联世界,当人们谈论智能、物联网和所有相关事物的时候,就更要小心对待。对消费者而言,“智能”意味着针对其需求的自动化解决方案。互联世界意味着消费者可以随时随地把图片和音乐传输到其他设备上;物联网则是智能和互联消费者世界的支柱。 三、TecWatch是IFA成功不可或缺的因素 IFA的TecWatch主题展览是未来科技的“风向标”,也是IFA成功的关键。TecWatch是为参与进来的研究者、工程师、开发者、年轻企业甚至初创企业专门设立的展示区域,全球的参与度也在不断提高。与此同时,专业观众对这一展区的兴趣也越来越浓。 四、IFA+峰会旨在洞悉技术的未来走向 众所周知,专业观众参展多是为了下一季度的生意。TecWatch可以预见当前产品在未来三到五年的发展趋势,而峰会可以预见当前市场上已经见到的产品和未来十到二十年的发展变化。所以也可以说,当前的产品在展厅里,未来技术在TecWatch,而远见者和思想领袖头脑中的未来趋势则在IFA+峰会。 爱因斯坦是一个很好的、广为人知的例子。早在上世纪20年代末,他在IFA演讲中表达了一些超前的想法。现在你还可以看到这篇演讲,如果你有时间通篇听下来,你仍会对他的想法感到印象深刻,即电子媒体拥有的能量与影响。但是我们在历史上有很多这样的里程碑。其中一个例子,是上世纪90年代MP3技术的首次展示,虽然在当时受到的关注不大。这是由弗劳恩霍夫发明的,这家公司也是Tecwatch展区长期合作伙伴之一。当时大多数人并没有意识到MP3会彻底改变娱乐、世界和媒体行业。 五、每年的IFA国际主题演讲都有看头 今年IFA主题演讲者中有一位是来自微软集团OEM事业部负责人尼克·帕克(Nick Parker)。当提到微软的时候,我们往往只想到Win10或其他新软件。但更有意思的是Win10会对微软合作伙伴制造的整个世界的设备带来的影响。这就是为什么IFA邀请微软OEM事业部负责人做主题演讲的原因。 不过,IFA还有其他的主题演讲同样吸引人,比如LG Display总裁兼CEO韩相范的开幕主题演讲。在讨论互联和智能世界的时候,开幕主题演讲聚焦显示技术。可以说这是一切的核心,因为没有显示,智能手机就算不得智能。在显示技术方面有很多新进展,我们可以听到这位富有远见的演讲者的真知灼见。 原文发布时间: 2015-09-06 19:17 本文作者: Berry 本文来自云栖社区合作伙伴镁客网,了解相关信息可以关注镁客网。

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

微软封杀IE10等旧版浏览器访问官方网页

【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 虽然你可能当时买了正版,虽然你怀念经典,但对于像微软这样的软件巨头来说,他们是很难容忍你坚守旧版,不升级新版的,所以,“高压”政策必不可少。 据 neowin 报道,微软发出警告,从 9 月 1 日开始,将不再允许版本号较老的浏览器访问企业商店。 因为遭封杀的名单实在太长,我们还是看看那些支持吧—— Microsoft Edge Internet Explorer 11, 2013 年发布 Google Chrome 22, 2012 年发布 Mozilla Firefox 27, 2013 年发布 Safari 7, 2013 年发布 iOS 5, 2011 年发布 很显然,预装了 Edge 和 IE11 的 Windows 10 潜移默化中成了“免死金牌”中的加冕者。 需要注意的是,微软企业商店(Company Store)是微软早期面向合作伙伴、内部员工的打折专区,但现在开放该了几乎所有网友,并且进化成了一个杂货铺,提供包括服装、饰品、文具等诸多品类产品。 当然,其实微软这么做也有自己的苦心,毕竟在安全形势越发不容乐观的当下,保证浏览器新版不仅可以获得较高的视觉体验,安全系数也高了。

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

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文件系统,支持十年生命周期更新。

用户登录
用户注册