공통 [10.3 리오] 기타 컴파일러, 데이터, RTL 개선사항
2018.12.06 17:01
컴파일러 개선사항
Win64의 C++ 수학 관련 성능 향상
많은 수의 C++ 수학 함수가 새롭게 구현되었습니다. 수학 성능이 이전 버전에 비해 평균적으로 약 2배로 향상되었습니다.
C++ 코드 완성 개선
C++ 오류 인사이트 지원
C++ 에서도 오류 인사이트(오류가 발생한 코드 아래 빨간색 밑줄이 표시되어 편집기 상에서 코드의 문제를 미리 볼 수 있는 기능)를 지원합니다.
(Win32용 Clang 컴파일러를 사용하는 경우 사용할 수 있습니다.)
C++ 디버깅 최적화 빌드
10.3 이전에는 디버그 정보를 활성화 하면 컴파일러 최적화가 비활성화 되었습니다. 업데이트된 Win32 컴파일러에서 이제 최적화된 빌드를 디버깅할 수 있게 되었습니다.
RTL 개선사항
데이터 컬렉션(Data Structure) 증가 정책 변경
여러가지 데이터 컬렉션(TStringList, TList, TList<T>, TQueue<T>, TSTack<T>)는 데이터가 가득차 확장이 필요하면 이전보다 2배의 크기로 크기를 증가했습니다. 이제 좀 더 유연하게 성장하도록 증가 정책이 변경되었습니다.
새로운 증가 정책은 공유 전역 함수(System.pas, GrowCollection)에 구현되며, SetGrowCollectionFunc 함수를 통해 사용자 정의 할 수 있습니다.
TStringBuilder 변경
성능 향상을 위해 일부 변경되었습니다. 메모리 증가 정책과 유사한 변경 및 중복 코드 제거 등의 전반적인 정리등을 진행했습니다.
TStringBuilder 열거형이 최적화 되었습니다.
JSON 개선
정확성과 성능을 위해 JSON 처리 및 분석 향상이 크게 진행됐습니다.
기타 RTL 변경
10.3 이전에는 디버그 정보를 활성화 하면 컴파일러 최적화가 비활성화 되었습니다. 업데이트된 Win32 컴파일러에서 이제 최적화된 빌드를 디버깅
앱 테더링 긴 문자열 전송
앱테더링에 사용되는 TTetheringAppProfile 클래스의 SendString / AsString 작업의 현재 1,400문자 길이에 제한되어 있었습니다. 10.3 에서는 다음 변경 사항 및 추가 기능을 통해 호환성을 유지하며 긴 문자열 처리가 가능하게 되었습니다.
- 새로 추가된 TTetheringAppProfile의 SendLongString 메소드는 문자열과 스트림을 사용
- TResourceValue.AsString은 받은 스트림에서 문자열을 반환합니다. 만약 없다면 반은 문자열 값을 반환합니다. 이는 일반 문자열과 긴 문자열에 대한 대응입니다.
문자열 길이가 1.3 KB보다 작은 경우 TTetheringAppProfile.SendString을 사용하고, 더 길다면 TTetheringAppProfile.SendLongString을 사용하기 바랍니다.
TMemIniFile 최적화
RAD 스튜디오 10.3 리오는 TMemIniFile 구현이 최적화 되었습니다. TMemIniFile 읽기와 생성(constructing)이 10~25배 빨라지고 메모리 사용량도 절반으로 감소했습니다. TMemIniFile 작업도 향상되어 이전 구현에 비해 50~100 고속화 되었습니다.
또한 10.3에서는 다음 두가지 오버로드 생성자가 추가되고 스트림에서 TMemIniFile을 가져올 수 있습니다.
- TMemIniFile.Create(Stream)
- TMemIniFile.Create(Stream, UseLocale)
데이터, REST, Cloud 개선사항
FireDAC 드라이버 업데이트
- MySQL v 8.0 지원
- MariaDB 10.3 지원
- SQL Server 2017 지원
- PostgreSQL v10 지원, 다음 포함
- identify columns
- Macaddr8
- Password encryption
- 새로운 연결 속성: GUIDEndian=Little|Big
- Firebird v3.0 지원, 다음 포함
- local connection protocol
- FB$OUT package
- isc_database_info() information items
- Statistics feature in gbak output
- statement length > 64kb 지원
- 새로운 TFDFBOnlineValidate 컴포넌트
- 새로운 연결 속성: GUIDEndian=Little|Big
- MongoDB 개선
- 새로운 연결 속성: TimeZone=Local|UTC
- InterBase v 2017 지원, 다음 포함
- TRUNCATE command
- Change View에서 TRUNCATE 지원
- Transaction wait time
- 새로운 연결 속성: GUIDEndian=Little|Big
- SQLite 3.23.1 지원, 다음 포함
- 리눅스 플랫폼 지원 향상 - Encryption, Collation 지원
- SQL Anywhere 개선
- 새로운 TFDPhysASADriverLink.ToolHome 속성
- TFDEventAlerter 지원 추가
기타 FireDAC 변경
- TFDBatchMoveJSONWriter 추가
- TFDBatchMove와 관련 컴포넌트 최적화
데이터베이스 개선사항
- 새로운 TClientDataSet.IncludeBlobsInDelta 속성
DataSnap 개선사항
- 새로운 TDSRestConnection.SecureProtocols 속성
- DataSnap REST에서 이제 명시적으로 "Content-Type=application/json" 지정 가능
REST 개선사항
- MIME 타입 판별 향상
- Indy가 THTTPClient로 대체
- 윈도우 플랫폼의 THTTPClient 최적화
- 다수의 추가, 개선된 속성 및 이벤트
Cloud 개선사항
- Azure 저장소 에뮬레이터 지원 향상
- 최근 추가된 AWS S3 지역(Region) 지원
- Clund 지원의 일반 성능 향상
- TAmazonConnectionInfo.Region 속성 추가됨
- 대부분의 버킷/오브젝트 관련된 TAmazonStorageService 메소드에 "BucketRegion: TAmazonRegion = amzrNotSpecified" 파라메터 추가됨
10.3 리오의 업데이트 버전들